I am using Perl 5.6.1, DBI 1.32 and DBD::Oracle 1.12. I have decided to upgrade to DBI 1.35 BEFORE reporting a problem I am having.
I built DBI 1.35 with no problems. Then I tried to rebuild DBD::Oracle 1.12. 1) compile warning: cc -c -I/opt/oracle/product/8.1.6/rdbms/demo -I/opt/oracle/product/8.1.6/rdbms/public -I/opt/oracle/product/8.1.6/plsql/public -I/opt/oracle/product/8.1.6/network/public -I/opt/oracle/product/8.1.6/rdbms/demo -I/opt/oracle/product/8.1.6/rdbms/demo -I/opt/perl/lib/site_perl/5.6.1/sun4-solaris/auto/DBI -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\" -KPIC -I/opt/perl/lib/5.6.1/sun4-solaris/CORE oci8.c "oci8.c", line 267: warning: assignment type mismatch: pointer to function(pointer to struct imp_dbh_st {struct {..} com, pointer to function(pointer to struct imp_dbh_st {..}, in... "=" pointer to void This is probably NOT due to DBI 1.35, but I thought I'd report it anyway. 2) testing: Because of this in DBI.pm: sub connect { my $class = shift; my ($dsn, $user, $pass, $attr, $old_driver) = my @orig_args = @_; my $driver; if ($attr and !ref($attr)) { # switch $old_driver<->$attr if called in old style ->>> Carp::croak("DBI->connect using 'old-style' syntax is deprecated and will be an error in future versions"); ($old_driver, $attr) = ($attr, $old_driver); } (which doesn't make sense to me because the croak seems to make the old-style syntax be an error in this version!) both t/plsql.t and Oraperl.pm fail tests. I had to patch t/plsql.t thusly to get that to pass tests: my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger'; # The existing line: #my $dbh = DBI->connect('', $dbuser, '', 'Oracle'); # My change: my $dbh = DBI->connect("dbi:Oracle:",$dbuser); but since I'm not sure how to patch Oraperl.pm that in a way that is most flexible AND since no one in my organization uses it, I just renamed test.pl out of the way. The original code is in Oraperl.pm causing the problem is: my($system_id, $name, $password) = @_; local($Oraperl::prev_warn) = $SIG{'__WARN__'} || 0; # must be local local($SIG{'__WARN__'}) = sub { _warn($Oraperl::prev_warn, @_) }; # we still use the old style connect call with an explicit driver my $dbh = DBI->connect($system_id, $name, $password, 'Oracle'); I have been using ORACLE_USERID=u/[EMAIL PROTECTED] for the past few releases. Is the use of ORACLE_SID or TWO_TASK the recommended way to go now? Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration: Platform: osname=solaris, osvers=2.6, archname=sun4-solaris uname='sunos nycux-ast401 5.6 generic_105181-31 sun4u sparc sunw,ultra-enterprise ' config_args='-d' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef Compiler: cc='cc', ccflags ='-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O', cppflags='-I/usr/local/include' ccversion='WorkShop Compilers 4.2 30 Oct 1996 C 4.2', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, usemymalloc=y, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib -L/opt/SUNWspro/SC4.2/lib ' libpth=/usr/local/lib /opt/SUNWspro/SC4.2/lib /usr/lib /usr/ccs/lib libs=-lsocket -lnsl -ldl -lm -lc perllibs=-lsocket -lnsl -ldl -lm -lc libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' cccdlflags='-KPIC', lddlflags='-G -L/usr/local/lib -L/opt/SUNWspro/SC4.2/lib' Characteristics of this binary (from libperl): Compile-time options: USE_LARGE_FILES Built under solaris Compiled at Jun 30 2002 22:00:52 %ENV: PERL5LIB ="/am/common/lib/5.6.1:/am/common/lib/site_perl:/sa/common/lib/5.6.1:/sa/common/lib/site_perl" @INC: /am/common/lib/5.6.1/sun4-solaris /am/common/lib/5.6.1 /am/common/lib/site_perl/5.6.1/sun4-solaris /am/common/lib/site_perl/5.6.1 /am/common/lib/site_perl /sa/common/lib/5.6.1/sun4-solaris /sa/common/lib/5.6.1 /sa/common/lib/site_perl/5.6.1/sun4-solaris /sa/common/lib/site_perl/5.6.1 /sa/common/lib/site_perl /opt/perl/lib/5.6.1/sun4-solaris /opt/perl/lib/5.6.1 /opt/perl/lib/site_perl/5.6.1/sun4-solaris /opt/perl/lib/site_perl/5.6.1 /opt/perl/lib/site_perl -- Matthew Persico Vice President Lazard 30 Rockefeller Plaza New York, NY 10020, USA Phone Number: 212 632 8255 Fax Number: 212 332 5904 Email: [EMAIL PROTECTED]