Re: DBD::Oracle 11gr2 & ORA-38909

2010-06-04 Thread Scott T. Hildreth
On Fri, 2010-06-04 at 16:42 -0400, John Scoles wrote:
> Had a quick look at it today give it a try agian but this time make
> sure you have autocommit off
> 
> 
> AutoCommit=>1

This turns it on, so you want it on or off?

> 
> on the connection method
> 
> cheers
> 
> On Fri, May 21, 2010 at 11:20 AM, John Scoles 
> 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
> 

Re: DBD::Oracle 11gr2 & ORA-38909

2010-06-04 Thread John Scoles
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  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.


Re: accessing driver prefix ...

2010-06-04 Thread H.Merijn Brand
On Thu, 3 Jun 2010 13:46:03 +0200, Jens Rehsack
 wrote:

> Hi Tim,
> 
> as talked in IRC I'd like to submit attached patch to DBI.pm
> 
> It's primarily for common method injections (and registration) for
> DBD::File based drivers.
> Further, it seems I found 3 more DBD's not listed in $dbd_prefix_registry ...

+1

You've got my ok on this

-- 
H.Merijn Brand  http://tux.nl  Perl Monger  http://amsterdam.pm.org/
using 5.00307 through 5.12 and porting perl5.13.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/   http://www.test-smoke.org/
http://qa.perl.org  http://www.goldmark.org/jeff/stupid-disclaimers/