Had a quick look at it today give it a try agian but this time make sure you have autocommit off
AutoCommit=>1 on the connection method cheers On Fri, May 21, 2010 at 11:20 AM, John Scoles <sco...@pythian.com> wrote: > Ok I guess it is back to square 1 on this. > > Unfortunetly no time to look at it today > > Will write up a small test script and see if my patch actually does > anything > > You may hear from me in a few days > > Cheers > John > > > > Scott T. Hildreth wrote: > >> On Fri, 2010-05-21 at 09:23 +0100, Martin Evans wrote: >> >> >>> John Scoles wrote: >>> >>> >>>> Ok I have patched up a solution I think will work across the board and >>>> you >>>> can find it here >>>> >>>> http://svn.perl.org/modules/dbd-oracle/branches/oci_batch >>>> >>>> here are the details >>>> >>>> ora_oci_batch >>>> >>>> For 11g users you may encounter an error while using the execute_array >>>> in >>>> that it does not >>>> return a full list of tuples. This seems to be a result in that a >>>> statement >>>> can only >>>> have 'LOG ERRORS' or 'SAVE EXCEPTIONS'set, By setting this flag to a >>>> value >>>> should stop this >>>> problem error. >>>> >>>> For convenience I have added support for a 'ORA_DBD_OCI_BATCH' >>>> environment variable that you can use at the OS level to set this >>>> value. It can also be set as an attribute on both the Connect and >>>> Prepare. >>>> >>>> Unfortunately I can't test it (do not have an 11g box yet) so It will >>>> stay >>>> in the above branch until it is tested hopefully by you Scott >>>> >>>> Cheers >>>> John Scoles >>>> >>>> -- >>>> See Pythian's Alex Gorbachev, co-author of "Expert Oracle Practices" at >>>> NoCOUG Spring Conference May 20th. >>>> Details, interview & book chapter in the May NoCOUG Journal: >>>> http://bit.ly/alexnocoug >>>> >>>> >>>> >>> I'm not sure why I seem to have ignored your mail but I just noticed it >>> again - sorry for the delay. >>> >>> I checked out the branch you mentioned and >>> >>> export ORA_DBD_OCI_BATCH=1 >>> >>> but 26exe_array still seems to fail for me: >>> >>> >> >> Sorry John, I meant to test earlier but its been a busy week. >> >> Fails for me as well. >> >> DB<7> x $dbh->{'ora_oci_batch'} >> 0 1 >> DB<8> n >> main::(../tst_exec_ary.pl:13): my $sth = $dbh->prepare("Insert into >> TestArray Values(?, ?, ?) LOG ERRORS INTO ERR_TESTARRAY"); >> DB<8> n >> main::(../tst_exec_ary.pl:15): $sth->bind_param_array(1, [ qw(One Uno Il >> oNe) ]); >> DB<8> n >> main::(../tst_exec_ary.pl:16): $sth->bind_param_array(2, [ 2, 22, 0, 222 >> ]); >> DB<8> n >> main::(../tst_exec_ary.pl:17): $sth->bind_param_array(3, [ qw(20070101 >> 20080101 20090101 20060101) ]); >> DB<8> n >> main::(../tst_exec_ary.pl:21): $sth->execute_array({}); >> DB<8> n >> DBD::Oracle::st execute_array failed: ORA-38909: DML Error logging is not >> supported with BATCH ERROR mode (DBD ERROR: OCIStmtExecute) [for Statement >> "Insert into TestArray Values(?, ?, ?) LOG ERRORS INTO ERR_TESTARRAY"] at >> ../tst_exec_ary.pl line 21. >> at ../tst_exec_ary.pl line 21 >> >> >> >>> mar...@bragi:~/svn/dbd-oracle/branches/oci_batch$ prove -vb >>> t/26exe_array.t >>> t/26exe_array.t .. >>> 1..17 >>> ok 1 - use DBI; >>> ok 2 - The object isa DBI::db >>> ok 3 - ... execute_array should return true >>> ok 4 - ... we should have 10 tuple_status >>> ok 5 - ... execute_array should return false >>> ok 6 - ... we should have 10 tuple_status >>> ok 7 - ... we should get text >>> ok 8 - ... we should get -1 >>> ok 9 - ... we should get a warning >>> ok 10 - ... execute_for_fetch should return true >>> not ok 11 - ... we should have 19 tuple_status >>> >>> # Failed test '... we should have 19 tuple_status' >>> # at t/26exe_array.t line 128. >>> # got: 10 >>> # expected: 19 >>> ok 12 - ... execute_array should return flase >>> ok 13 - ... we should have 10 tuple_status >>> not ok 14 - ... we should have 48 rows >>> >>> # Failed test '... we should have 48 rows' >>> # at t/26exe_array.t line 154. >>> # got: 30 >>> # expected: 48 >>> ok 15 - ... execute_array should return true >>> ok 16 - ... \#5 should be a warning >>> ok 17 - ... we should have 10 tuple_status >>> # Looks like you failed 2 tests of 17. >>> Dubious, test returned 2 (wstat 512, 0x200) >>> Failed 2/17 subtests >>> >>> Test Summary Report >>> ------------------- >>> t/26exe_array.t (Wstat: 512 Tests: 17 Failed: 2) >>> Failed tests: 11, 14 >>> Non-zero exit status: 2 >>> Files=1, Tests=17, 0 wallclock secs ( 0.02 usr 0.01 sys + 0.05 cusr >>> 0.01 csys = 0.09 CPU) >>> Result: FAIL >>> >>> This was using oracle 11.1 server and 11.1 instant client. >>> >>> If I've not set the right thing let me know. >>> >>> Martin >>> >>> >> >> >> > > > -- Catch Alex & Sheeri at ODTUG/Kaleidoscope - June 27 - July 1. Hear Sheeri speak or email eve...@pythian.com to meet with Pythian.