On Tue, 2 Sep 2008 11:01:37 +0100, Tim Bunce <[EMAIL PROTECTED]>
wrote:
> > > I wasn't very clear (and was actually partly misleading). Sorry.
> > >
> > > What I meant was that the TABLE_CAT and/or TABLE_SCHEM columns in the
> > > data returned by your table_info () method are probably empty strings but
> > > should be undefs.
> > >
> > > What does
> > > Data::Dumper::Dumper($dbh->table_info(...)->fetchall_arrayref)
> > > show for an example table?
> >
> > $ perl -Iblib/{lib,arch} -MPROCURA::DBD -MData::Dumper
> > -wle'$dbh=DBDlogon;print Dumper
> > $dbh->table_info(undef,"PROLEP","parm")->fetchall_arrayref' $VAR1 = [
> > [
> > '',
> > 'PROLEP',
> > 'parm',
> > 'T',
> > 'W'
> > ]
> > ];
> >
> > Correct, as that is the result of
> >
> > sub table_info
> > {
>
> > my $sth = $dbh->prepare (
> > "select '', OWNR, TABLE_NAME, TABLE_TYPE, RDWRITE ".
> > "from SYS.ACCESSIBLE_TABLES ".
> > $where);
>
> > select NULL, OWNR, ...
> >
> > is not allowed. I don't see an easy way out
> >
> > sql> select NULL, OWNR, TABLE_NAME
> > sql> from SYS.ACCESSIBLE_TABLES
> > sql> where TABLE_NAME like 'parm';
> > NULL is not allowed in a constant list (-10518).
>
> Perhaps you could use some expression that happens to yield a NULL.
> Or you could implement a custom quote_identifier() method.
This worked:
--8<---
sub quote_identifier
{
my ($dbh, @arg) = map { defined $_ && $_ ne "" ? $_ : undef } @_;
return $dbh->SUPER::quote_identifier (@arg);
} # quote_identifier
-->8---
--
H.Merijn Brand Amsterdam Perl Mongers http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, SuSE 10.1, 10.2, and 10.3, AIX 5.2, and Cygwin.
http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/
http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/