On Mon, Jun 07, 2004 at 12:06:48PM +0100, Dan Hopkins wrote: > Hi, > > I've installed DBD-Oracle-1.14 on Solaris 9 against Oracle 7.3.4 client libs > (Perl 5.8.3 + DBI-1.42) and there's a couple of issues I can't seem to fix > > ------------ > > I'm getting bizzare errors against previously working code (multiple > scripts). Basically, the > > while (.... = $sth->fetch*...) > > loops all fail on the final iteration with: > > "Use of uninitialized value in subroutine entry at <myscript>.pl line > <whatever> > DBD::Oracle::st fetchrow_array warning: [for Statement <mySQL>] at > <myscript.pl> line <whatever>" > > -> fetch for DBD::Oracle::st (DBI::st=HASH(0x2a3480)~0x1fc6e8) > !! warn: 0 undef (err#0) > <- fetch= undef row1 at DBI.pm line 1478
For some reason the err value for the handle is being set to zero (instead of being left as undef) when there's no apparent error. But I can't see a code path that would act in that way. [Please send a level 9 trace to me, not the list. Thanks.] Possibly it's an interaction between the DBI's new mechanism for warn/info messages and a code path in DBD::Oracle that calls the oci_error function when there's no actual error. Should be fixed in the next release which should be using the new DBI mechanisms to set error codes. Meanwhile turing off PrintWarn should silence it. > ----------- > > Second issue is minor really, but DBD-Oracle-1.15 fails to build against > Oracle 7 libs. Is this a known issue? I only ask since the 'Changes' in the > 1.15 release notes reckon: > > " NOTE: This is probably the last release that will support being built > with the old Oracle 7 OCI interface." > > Compiling 1.15 against Oracle 7.3.4 libs fails > > Oracle.c:1165: error: `OCILobLocator' undeclared (first use in this function) You have to use "perl Makefile.PL -8" to build using Oracle 7 OCI. But that's history now as the next release doesn't support Oracle 7 at all. Tim.
