Both would be great.

I am at home today as well with 50kph winds, -24c and 25cm snow-storm in
progress

Seems the  11.1.0.7 for sun has a number of issues.

It would be neat to see if you run into another issues as well I have a
test you could try and run it you have time.

I have attached it all you have to do is drop it into you test dir and let
it run when you do a make test

you wil have to add my $SERVER =
my $SID =
my $SCHEMA =

at the top to make it work

Cheers
John Scoles
> Thanks for the quick response John.
>
> We are running 11.1.0.7.  As far as I am aware it is up to date
> patch-wise.  I'm at home at the moment and won't be in the office for
> about 3 hours (UTC+11).  I'll run the make test then.  Do you want me to
> run it before the patch, after, or both?
>
> Cheers,
>
> Steve
>
> On Wed, 2009-01-28 at 10:09 -0500, sco...@pythian.com wrote:
>> Oh yeah a few more quick questions
>>
>> 1) Which version of 11g are you running?
>> 2) Has it been Patched?
>> 3) can you to a make test and send me the results
>>
>> Just need the above to have the proper talks with my Oracle chum
>>
>> cheers
>> John Scoles
>>
>> > Hi,
>> >
>> > We have found some of our code that worked perfectly well with 9i
>> > started failing when we moved the database to 11g.  We are using
>> > DBD::Oracle 1.22.
>> >
>> > I have managed to create a very simple test case ...
>> >
>> > #!/usr/bin/perl -w
>> >
>> > use strict;
>> > use warnings;
>> > use DBI qw();
>> >
>> > my $uidpwd = 'usr/p...@db';
>> > my $dbh = DBI->connect('dbi:Oracle:', $uidpwd, '', {RaiseError => 1,
>> > PrintError => 0});
>> >
>> > $dbh->trace(3);
>> > my $sth = $dbh->prepare(q(
>> >     select  :dummy
>> >     from    dual
>> >     union all
>> >     select  :dummy
>> >     from    dual
>> >     ));
>> > $sth->bind_param(':dummy', 100);
>> > $sth->execute;
>> > my $data = $sth->fetchall_arrayref;
>> >
>> > END {
>> >     if (defined $dbh) {
>> >         $dbh->disconnect;
>> >     }
>> > }
>> >
>> > If I run this connecting to a 9i instance, everything is fine.
>> However
>> > if I run it connecting to an 11g instance, it crashes with an
>> ORA-24345.
>> >
>> > Here is the output of a level 3 trace for the *9i* run ...
>> >
>> >     DBI::db=HASH(0x82df56c) trace level set to 0x0/3 (DBI @ 0x0/0) in
>> > DBI 1.605-ithread (pid 29269)
>> >     -> prepare for DBD::Oracle::db (DBI::db=HASH(0x82df5d8)~0x82df56c
>> '
>> >     select  :dummy
>> >     from    dual
>> >     union all
>> >     select  :dummy
>> >     from    dual
>> >     ') thr#8153008
>> >     dbd_preparse scanned 1 distinct placeholders
>> >     dbd_st_prepare'd sql SELECT (pl1, auto_lob1, check_sql1)
>> >     dbd_describe SELECT (EXPLICIT, lb 80)...
>> > Described col  1: dbtype 1(VARCHAR), scale 0, prec 2000, nullok 1,
>> > name :DUMMY
>> >           : dbsize 2000, char_used 0, char_size 2000, csid 873, csform
>> > 1, disize 2000
>> >     fbh 1: ':DUMMY'        NULLable, otype   1->  5, dbsize 2000/2001,
>> p2000.s0
>> >     row cache OCI_ATTR_PREFETCH_ROWS 14, OCI_ATTR_PREFETCH_MEMORY 0
>> >     rs_array_init: rs_array_on=0, rs_array_size=1
>> >     calling OCIAttrSet OCI_ATTR_CHARSET_FORM with csform=1
>> >     dbd_describe'd 1 columns (row bytes: 2000 max, 1000 est avg,
>> cache:
>> > 14)
>> >     <- prepare= DBI::st=HASH(0x82e905c) at 11g.plx line 14
>> >     -> bind_param for DBD::Oracle::st
>> (DBI::st=HASH(0x82e905c)~0x82e9038
>> > ':dummy' 100) thr#8153008
>> > dbd_bind_ph(): bind :dummy <== 100 (type 0 (DEFAULT (varchar)))
>> > dbd_rebind_ph_char() (1): bind :dummy <== 100 (size 3/4/0, ptype
>> > 5(VARCHAR), otype 1 )
>> > dbd_rebind_ph_char() (2): bind :dummy <== '100' (size 3/4, otype
>> > 1(VARCHAR), indp 0, at_exec 1)
>> >       bind :dummy as ftype 1 (VARCHAR)
>> > dbd_rebind_ph(): bind :dummy <== 100 (in, not-utf8, csid 1->0->1,
>> ftype
>> > 1 (VARCHAR), csform 0->0, maxlen 4, maxdata_size 0)
>> >     <- bind_param= 1 at 11g.plx line 21
>> >     -> execute for DBD::Oracle::st (DBI::st=HASH(0x82e905c)~0x82e9038)
>> > thr#8153008
>> >    dbd_st_execute SELECT (out0, lob0)...
>> > Statement Execute Mode is 0 (DEFAULT)
>> >        in  ':dummy' [0,0]: len  3, ind 0, value=100
>> >     dbd_st_execute SELECT returned (SUCCESS, rpc0, fn4, out0)
>> >     <- execute= '0E0' at 11g.plx line 22
>> >     -> fetchall_arrayref for DBD::Oracle::st
>> > (DBI::st=HASH(0x82e905c)~0x82e9038) thr#8153008
>> >     dbd_st_fetch 1 fields...
>> >     dbd_st_fetched 1 fields with status of 0(SUCCESS)
>> >     dbd_st_fetch 1 fields...
>> >     dbd_st_fetched 1 fields with status of 0(SUCCESS)
>> >     dbd_st_fetch 1 fields...
>> >     dbd_st_fetch no-more-data
>> >     -> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x82e9038)~INNER)
>> > thr#8153008
>> >     <- DESTROY= undef
>> >     -> trace for DBD::Oracle::db (DBI::db=HASH(0x82df5d8)~0x82df56c 0)
>> > thr#8153008
>> >     <- trace= 3 at 11g.plx line 27 via  at 11g.plx line 0
>> >
>> > Here is the *11g* level 3 trace output ...
>> >
>> >     DBI::db=HASH(0x82df524) trace level set to 0x0/3 (DBI @ 0x0/0) in
>> > DBI 1.605-ithread (pid 29253)
>> >     -> prepare for DBD::Oracle::db (DBI::db=HASH(0x82df590)~0x82df524
>> '
>> >     select  :dummy
>> >     from    dual
>> >     union all
>> >     select  :dummy
>> >     from    dual
>> >     ') thr#8153008
>> >     dbd_preparse scanned 1 distinct placeholders
>> >     dbd_st_prepare'd sql SELECT (pl1, auto_lob1, check_sql1)
>> >     dbd_describe SELECT (EXPLICIT, lb 80)...
>> > Described col  1: dbtype 1(VARCHAR), scale 0, prec 0, nullok 1,
>> > name :DUMMY
>> >           : dbsize 0, char_used 0, char_size 0, csid 873, csform 1,
>> > disize 0
>> >     fbh 1: ':DUMMY'        NULLable, otype   1->  5, dbsize 0/1, p0.s0
>> >     row cache OCI_ATTR_PREFETCH_ROWS 1123, OCI_ATTR_PREFETCH_MEMORY 0
>> >     rs_array_init: rs_array_on=0, rs_array_size=1
>> >     calling OCIAttrSet OCI_ATTR_CHARSET_FORM with csform=1
>> >     dbd_describe'd 1 columns (row bytes: 0 max, 0 est avg, cache:
>> 1123)
>> >     <- prepare= DBI::st=HASH(0x82e9014) at 11g.plx line 14
>> >     -> bind_param for DBD::Oracle::st
>> (DBI::st=HASH(0x82e9014)~0x82e8ff0
>> > ':dummy' 100) thr#8153008
>> > dbd_bind_ph(): bind :dummy <== 100 (type 0 (DEFAULT (varchar)))
>> > dbd_rebind_ph_char() (1): bind :dummy <== 100 (size 3/4/0, ptype
>> > 5(VARCHAR), otype 1 )
>> > dbd_rebind_ph_char() (2): bind :dummy <== '100' (size 3/4, otype
>> > 1(VARCHAR), indp 0, at_exec 1)
>> >       bind :dummy as ftype 1 (VARCHAR)
>> > dbd_rebind_ph(): bind :dummy <== 100 (in, not-utf8, csid 1->0->1,
>> ftype
>> > 1 (VARCHAR), csform 0->0, maxlen 4, maxdata_size 0)
>> >     <- bind_param= 1 at 11g.plx line 21
>> >     -> execute for DBD::Oracle::st (DBI::st=HASH(0x82e9014)~0x82e8ff0)
>> > thr#8153008
>> >    dbd_st_execute SELECT (out0, lob0)...
>> > Statement Execute Mode is 0 (DEFAULT)
>> >        in  ':dummy' [0,0]: len  3, ind 0, value=100
>> >     dbd_st_execute SELECT returned (SUCCESS, rpc0, fn4, out0)
>> >     <- execute= '0E0' at 11g.plx line 22
>> >     -> fetchall_arrayref for DBD::Oracle::st
>> > (DBI::st=HASH(0x82e9014)~0x82e8ff0) thr#8153008
>> >     dbd_st_fetch 1 fields...
>> >     dbd_st_fetched 1 fields with status of 1(SUCCESS_WITH_INFO)
>> >     !! ERROR: '24345' 'ORA-24345: A Truncation or null fetch error
>> > occurred (DBD ERROR: ORA-01406 error on field 1 of 1, ora_type
>> > 1)' (err#1)
>> >     <- fetchall_arrayref= [ ] row1 at 11g.plx line 23
>> >        ERROR: '24345' 'ORA-24345: A Truncation or null fetch error
>> > occurred (DBD ERROR: ORA-01406 error on field 1 of 1, ora_type
>> > 1)' (err#1)
>> > 1   <- FETCH= HASH(0x82e91c4)1keys at 11g.plx line 23
>> > DBD::Oracle::st fetchall_arrayref failed: ORA-24345: A Truncation or
>> > null fetch error occurred (DBD ERROR: ORA-01406 error on field 1 of 1,
>> > ora_type 1) [for Statement "
>> >     select  :dummy
>> >     from    dual
>> >     union all
>> >     select  :dummy
>> >     from    dual
>> >     " with ParamValues: :dummy=100] at ./11g.plx line 23.
>> >     -> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x82e8ff0)~INNER)
>> > thr#8153008
>> >        ERROR: '24345' 'ORA-24345: A Truncation or null fetch error
>> > occurred (DBD ERROR: ORA-01406 error on field 1 of 1, ora_type
>> > 1)' (err#1)
>> >     <- DESTROY= undef
>> >     -> trace for DBD::Oracle::db (DBI::db=HASH(0x82df590)~0x82df524 0)
>> > thr#8153008
>> >        ERROR: '24345' 'ORA-24345: A Truncation or null fetch error
>> > occurred (DBD ERROR: ORA-01406 error on field 1 of 1, ora_type
>> > 1)' (err#0)
>> >     <- trace= 3 at 11g.plx line 27 via  at 11g.plx line 0
>> >
>> > I found that if I changed the SELECT expression to either
>> > 'TO_NUMBER(:dummy)' or '0 + :dummy' it works on 11g (as well as 9i).
>> >
>> > I don't know if this is to do with DBD::Oracle code or if it is a
>> change
>> > in behaviour from 9i OCI to 11g OCI, but would appreciate some
>> feedback
>> > from the DBD::Oracle maintainer.
>> >
>> > Thanks,
>> >
>> > Steve
>> >
>> >
>> > This email is intended solely for the use of the addressee and may
>> > contain information that is confidential, proprietary, or both.
>> > If you receive this email in error please immediately notify the
>> > sender and delete the email.
>> >
>> >
>>
>>
>
>
> This email is intended solely for the use of the addressee and may
> contain information that is confidential, proprietary, or both.
> If you receive this email in error please immediately notify the
> sender and delete the email.
>
>


Reply via email to