Well we are getting closer you are getting
OCIStmtExecute(88d26c, 2bdcc4,88d2e0,0,0,0,0,mode=DESCRIBE_ONLY,16)=ERROR which is not correct it should not error at this point. Now just to figure out why?? give me half a moment to look at something I will get you another pathc in a few moments > Here you go ... > > stbaldwins-macbook-pro:dev stbaldwin$ ./no-bind.plx > Using DBI 1.607 and DBD::Oracle 1.23 > OCIHandleAlloc(113000,42ba30,OCI_HTYPE_STMT,0,0)=SUCCESS > OCIStmtPrepare(2bdcc4,88d2e0,' > SELECT TO_CHAR(d_val, 'DD-Mon-YYYY HH24:MI:SS') > FROM TABLE(sb_func(?)) > ',88,1,0)=SUCCESS > OCIAttrGet(2bdcc4,OCI_HTYPE_STMT,42ba3c,0,24,88d2e0)=SUCCESS > dbd_st_prepare'd sql SELECT (pl1, auto_lob1, check_sql1) > dbd_describe SELECT (EXPLICIT, lb 80)... > OCIStmtExecute(88d26c, > 2bdcc4,88d2e0,0,0,0,0,mode=DESCRIBE_ONLY,16)=ERROR > OCIAttrGet(2bdcc4,OCI_HTYPE_STMT,bfffe96e,0,129,88d2e0)=SUCCESS > OCIErrorGet(88d2e0,1,"<NULL>",bfffe96c,"ORA-00911: invalid > character > ",1024,2)=SUCCESS > OCIErrorGet(88d2e0,2,"<NULL>",bfffe96c,"ORA-00911: invalid > character > ",1024,2)=NO_DATA > dbd_st_destroy > OCIHandleFree(2bdcc4,OCI_HTYPE_STMT)=SUCCESS > DBD::Oracle::db prepare failed: ORA-00911: invalid character (DBD > ERROR: error possibly near <*> indicator at char 80 in ' > SELECT TO_CHAR(d_val, 'DD-Mon-YYYY HH24:MI:SS') > FROM TABLE(sb_func(<*>?)) > ') [for Statement " > SELECT TO_CHAR(d_val, 'DD-Mon-YYYY HH24:MI:SS') > FROM TABLE(sb_func(?)) > "] at ./no-bind.plx line 20. > OCISessionEnd(88d26c,88d2e0,8a6668,mode=DEFAULT 0)=SUCCESS > OCIServerDetach(2b402c,88d2e0,mode=DEFAULT,0)=SUCCESS > OCIHandleFree(8a6668,OCI_HTYPE_SESSION)=SUCCESS > OCIHandleFree(2b402c,OCI_HTYPE_SERVER)=SUCCESS > OCIHandleFree(88d26c,OCI_HTYPE_SVCCTX)=SUCCESS > OCIHandleFree(88d2e0,OCI_HTYPE_ERROR)=SUCCESS > > On 18/04/2009, at 9:38 AM, sco...@pythian.com wrote: > >>> OK, grasping at straws here. Any chance it might be a Mac (OS/X) >>> thing? >>> >> >> Begining to look like it. >> >> can you change $dbh->trace(0) with >> >> $dbh->{ora_verbose}=9; >> >> and send me the results >> >> cheers >> >>> Given that I can reproduce it at will, is there anything I can do to >>> get to the bottom of this? >>> >>> On 18/04/2009, at 9:15 AM, sco...@pythian.com wrote: >>> >>>> well with this code >>>> >>>> select(STDOUT); >>>> $|=1; >>>> p("Using DBI $DBI::VERSION and DBD::Oracle $DBD::Oracle::VERSION"); >>>> >>>> >>>> $dbh->trace(0); >>>> my $sth = $dbh->prepare(q( >>>> SELECT TO_CHAR(d_val, 'DD-Mon-YYYY HH24:MI:SS') >>>> FROM TABLE(sb_func(?)) >>>> )); >>>> >>>> >>>> $sth->bind_param(1, 10); >>>> p('Doing execute'); >>>> $sth->execute; >>>> my $rows = 0; >>>> p('Starting fetch'); >>>> while (my $row = $sth->fetchrow_arrayref) { >>>> ++$rows; >>>> } >>>> p("Fetch complete : $rows rows"); >>>> $dbh->disconnect; >>>> >>>> and here is my output >>>> >>>> Using DBI 1.607 and DBD::Oracle 1.23 >>>> Doing execute >>>> Starting fetch >>>> Fetch complete : 1 rows >>>> >>>> cheers >>>> >>>>> John, >>>>> >>>>> I see the same behaviour with the latest trunk. Is it possible >>>>> it is >>>>> due to some interaction with the latest DBI (I'm at 1.607 and >>>>> you're >>>>> at 1.601) ? .. >>>>> >>>>> au-stb-101-144:dev stbaldwin$ ./no-bind.plx >>>>> Using DBI 1.607 and DBD::Oracle 1.23 >>>>> DBD::Oracle::db prepare failed: ORA-00911: invalid character (DBD >>>>> ERROR: error possibly near <*> indicator at char 80 in ' >>>>> SELECT TO_CHAR(d_val, 'DD-Mon-YYYY HH24:MI:SS') >>>>> FROM TABLE(sb_func(<*>?)) >>>>> ') [for Statement " >>>>> SELECT TO_CHAR(d_val, 'DD-Mon-YYYY HH24:MI:SS') >>>>> FROM TABLE(sb_func(?)) >>>>> "] at ./no-bind.plx line 21. >>>>> >>>>> On 18/04/2009, at 3:51 AM, sco...@pythian.com wrote: >>>>> >>>>>> Ran this through my system (windows) and I get the correct >>>>>> results >>>>>> >>>>>> I am using the latest 'Trunk' version of DBD::Oracle >>>>>> >>>>>> you might want to try it and see what you get >>>>>> >>>>>> you can find it at >>>>>> >>>>>> http://svn.perl.org/modules/dbd-oracle/trunk >>>>>> >>>>>> my dbi is 1.601 >>>>>> >>>>>> cheers >>>>>> John >>>>>> >>>>>>> John, >>>>>>> >>>>>>> Try this ... >>>>>>> >>>>>>> (from sqlplus) >>>>>>> >>>>>>> create or replace type sb_o as object (d_val date, n_val number); >>>>>>> / >>>>>>> create or replace type sb_ot as table of sb_o; >>>>>>> / >>>>>>> create or replace function sb_func(i_p1 in number) return sb_ot >>>>>>> pipelined as >>>>>>> -- >>>>>>> l_row sb_o; >>>>>>> -- >>>>>>> begin >>>>>>> pipe row (sb_o(sysdate, 123.456)); >>>>>>> return; >>>>>>> end; >>>>>>> / >>>>>>> >>>>>>> (change the program SQL to ...) >>>>>>> >>>>>>> my $sth = $dbh->prepare(q( >>>>>>> SELECT TO_CHAR(d_val, 'DD-Mon-YYYY HH24:MI:SS') >>>>>>> FROM TABLE(sb_func(?)) >>>>>>> )); >>>>>>> >>>>>>> When I run it I get this ... >>>>>>> >>>>>>> au-stb-101-144:dev stbaldwin$ ./no-bind.plx >>>>>>> Using DBI 1.607 and DBD::Oracle 1.22 >>>>>>> DBD::Oracle::db prepare failed: ORA-00911: invalid character (DBD >>>>>>> ERROR: error possibly near <*> indicator at char 80 in ' >>>>>>> SELECT TO_CHAR(d_val, 'DD-Mon-YYYY HH24:MI:SS') >>>>>>> FROM TABLE(sb_func(<*>?)) >>>>>>> ') [for Statement " >>>>>>> SELECT TO_CHAR(d_val, 'DD-Mon-YYYY HH24:MI:SS') >>>>>>> FROM TABLE(sb_func(?)) >>>>>>> "] at ./no-bind.plx line 21. >>>>>>> >>>>>>> Hope this helps. Let me know if there's anything else I can do. >>>>>>> >>>>>>> Steve >>>>>>> >>>>>>> On 17/04/2009, at 8:39 PM, sco...@pythian.com wrote: >>>>>>> >>>>>>>> I will be working on this today. >>>>>>>> >>>>>>>> Having trouble receating it as I do not have the scema for >>>>>>>> >>>>>>>> msc$stats_report_p.schema_top_n(?)) >>>>>>>> >>>>>>>> can you get me that function or ne like it that returns >>>>>>>> something? >>>>>>>> >>>>>>>> >>>>>>>> Cheers >>>>>>>> John Scoles >>>>>>>> >>>>>>>>> Here's a bit more information that may help. It looks like a >>>>>>>>> DBD::Oracle problem, but I could be wrong. >>>>>>>>> >>>>>>>>> I did some tweaking of the statement to see what works and what >>>>>>>>> doesn't. I tried using the ? placeholder instead of the :var >>>>>>>>> and >>>>>>>>> found something weird is going on. >>>>>>>>> >>>>>>>>> If I set my statement to this ... >>>>>>>>> >>>>>>>>> my $sth = $dbh->prepare(q( >>>>>>>>> SELECT TO_CHAR(stats_date) >>>>>>>>> FROM TABLE(msc$stats_report_p.schema_top_n(?)) >>>>>>>>> )); >>>>>>>>> $sth->bind_param(1, 10); >>>>>>>>> p('Doing execute'); >>>>>>>>> $sth->execute; >>>>>>>>> my $rows = 0; >>>>>>>>> p('Starting fetch'); >>>>>>>>> while (my $row = $sth->fetchrow_arrayref) { >>>>>>>>> ++$rows; >>>>>>>>> } >>>>>>>>> p("Fetch complete : $rows rows"); >>>>>>>>> >>>>>>>>> Everything works ... >>>>>>>>> >>>>>>>>> stbaldwins-macbook-pro:dev stbaldwin$ ./no-bind.plx >>>>>>>>> Using DBI 1.607 and DBD::Oracle 1.22 >>>>>>>>> Doing execute >>>>>>>>> Starting fetch >>>>>>>>> Fetch complete : 1032 rows >>>>>>>>> >>>>>>>>> However, if I change the statement to this ... >>>>>>>>> >>>>>>>>> my $sth = $dbh->prepare(q( >>>>>>>>> SELECT TO_CHAR(stats_date, 'J') >>>>>>>>> FROM TABLE(msc$stats_report_p.schema_top_n(?)) >>>>>>>>> )); >>>>>>>>> (only added the [, 'J'], everything else the same) >>>>>>>>> >>>>>>>>> I get this ... >>>>>>>>> >>>>>>>>> stbaldwins-macbook-pro:dev stbaldwin$ ./no-bind.plx >>>>>>>>> Using DBI 1.607 and DBD::Oracle 1.22 >>>>>>>>> DBD::Oracle::db prepare failed: ORA-00911: invalid character >>>>>>>>> (DBD >>>>>>>>> ERROR: error possibly near <*> indicator at char 88 in ' >>>>>>>>> SELECT TO_CHAR(stats_date, 'J') >>>>>>>>> FROM TABLE(msc$stats_report_p.schema_top_n(<*>?)) >>>>>>>>> ') [for Statement " >>>>>>>>> SELECT TO_CHAR(stats_date, 'J') >>>>>>>>> FROM TABLE(msc$stats_report_p.schema_top_n(?)) >>>>>>>>> "] at ./no-bind.plx line 21. >>>>>>>>> >>>>>>>>> Thanks for your help, >>>>>>>>> >>>>>>>>> Steve >>>>>>>>> >>>>>>>>> On 14/04/2009, at 6:56 AM, Steve Baldwin wrote: >>>>>>>>> >>>>>>>>>> Any comments/feedback on this? >>>>>>>>>> >>>>>>>>>> On 09/04/2009, at 11:43 AM, Steve Baldwin wrote: >>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> I have a program that worked fine under DBI 1.52 and >>>>>>>>>>> DBD::Oracle >>>>>>>>>>> 1.22. Moving to the latest DBI 1.607 but the same >>>>>>>>>>> DBD::Oracle, I >>>>>>>>>>> get a bind error. >>>>>>>>>>> >>>>>>>>>>> Here's a sample program : >>>>>>>>>>> >>>>>>>>>>> #!/usr/bin/perl -w >>>>>>>>>>> use strict; >>>>>>>>>>> use warnings; >>>>>>>>>>> use DBI qw(); >>>>>>>>>>> use DBD::Oracle; >>>>>>>>>>> >>>>>>>>>>> sub p{ >>>>>>>>>>> printf @_; >>>>>>>>>>> print "\n"; >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> select(STDOUT); >>>>>>>>>>> $|=1; >>>>>>>>>>> p("Using DBI $DBI::VERSION and DBD::Oracle >>>>>>>>>>> $DBD::Oracle::VERSION"); >>>>>>>>>>> >>>>>>>>>>> my $uidpwd = 'usr/p...@db'; >>>>>>>>>>> my $dbh = DBI->connect('dbi:Oracle:', $uidpwd, '', >>>>>>>>>>> {RaiseError => >>>>>>>>>>> 1, PrintError => 0}); >>>>>>>>>>> >>>>>>>>>>> $dbh->trace(5); >>>>>>>>>>> my $sth = $dbh->prepare(q( >>>>>>>>>>> SELECT 'z' >>>>>>>>>>> FROM TABLE(msc$stats_report_p.schema_top_n(:x)) >>>>>>>>>>> WHERE 1=0 >>>>>>>>>>> )); >>>>>>>>>>> $sth->bind_param(':x', 10); >>>>>>>>>>> p('Doing execute'); >>>>>>>>>>> $sth->execute; >>>>>>>>>>> my $rows = 0; >>>>>>>>>>> p('Starting fetch'); >>>>>>>>>>> while (my $row = $sth->fetchrow_arrayref) { >>>>>>>>>>> ++$rows; >>>>>>>>>>> } >>>>>>>>>>> p("Fetch complete : $rows rows"); >>>>>>>>>>> $dbh->disconnect; >>>>>>>>>>> >>>>>>>>>>> Here's the output from DBI 1.52, DBD::Oracle 1.22 ... >>>>>>>>>>> >>>>>>>>>>> [stbald...@audev01 dev][2]$ ./no-bind.plx >>>>>>>>>>> Using DBI 1.52 and DBD::Oracle 1.22 >>>>>>>>>>> DBI::db=HASH(0x19e4bc60) trace level set to 0x0/5 (DBI @ >>>>>>>>>>> 0x0/240518168576) in DBI 1.52-ithread (pid 1554) >>>>>>>>>>> -> prepare for DBD::Oracle::db >>>>>>>>>>> (DBI::db=HASH(0x19e4b270)~0x19e4bc60 ' >>>>>>>>>>> SELECT 'z' >>>>>>>>>>> FROM TABLE(msc$stats_report_p.schema_top_n(:x)) >>>>>>>>>>> WHERE 1=0 >>>>>>>>>>> ') thr#19bae010 >>>>>>>>>>> >>>>>>>>>>> dbih_setup_handle >>>>>>>>>>> (DBI::st=HASH(0x19e4be10)=>DBI::st=HASH(0x19e4bf50), >>>>>>>>>>> DBD::Oracle::st, 19e4be20, Null!) >>>>>>>>>>> dbih_make_com(DBI::db=HASH(0x19e4bc60), 19e533e0, >>>>>>>>>>> DBD::Oracle::st, 448, 0) thr#19bae010 >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x19e4bf50), Err, >>>>>>>>>>> DBI::db=HASH(0x19e4bc60)) SCALAR(0x19d3b700) (already >>>>>>>>>>> defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x19e4bf50), State, >>>>>>>>>>> DBI::db=HASH(0x19e4bc60)) SCALAR(0x19d3b780) (already >>>>>>>>>>> defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x19e4bf50), Errstr, >>>>>>>>>>> DBI::db=HASH(0x19e4bc60)) SCALAR(0x19d3b740) (already >>>>>>>>>>> defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x19e4bf50), TraceLevel, >>>>>>>>>>> DBI::db=HASH(0x19e4bc60)) 5 (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x19e4bf50), FetchHashKeyName, >>>>>>>>>>> DBI::db=HASH(0x19e4bc60)) 'NAME' (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x19e4bf50), HandleSetErr, >>>>>>>>>>> DBI::db=HASH(0x19e4bc60)) undef (not defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x19e4bf50), HandleError, >>>>>>>>>>> DBI::db=HASH(0x19e4bc60)) undef (not defined) >>>>>>>>>>> dbd_preparse scanned 1 distinct placeholders >>>>>>>>>>> dbd_st_prepare'd sql SELECT (pl1, auto_lob1, check_sql1) >>>>>>>>>>> dbd_describe SELECT (EXPLICIT, lb 80)... >>>>>>>>>>> Describe col #1 type=96(CHAR) >>>>>>>>>>> Described col 1: dbtype 96(CHAR), scale 0, prec 1, nullok 1, >>>>>>>>>>> name >>>>>>>>>>> 'Z' >>>>>>>>>>> : dbsize 1, char_used 1, char_size 1, csid 873, csform 1, >>>>>>>>>>> disize 1 >>>>>>>>>>> fbh 1: ''Z'' NULLable, otype 96-> 5, dbsize 1/2, >>>>>>>>>>> p1.s0 >>>>>>>>>>> row cache OCI_ATTR_PREFETCH_ROWS 1042, >>>>>>>>>>> OCI_ATTR_PREFETCH_MEMORY 0 >>>>>>>>>>> rs_array_init: rs_array_on=0, rs_array_size=1 >>>>>>>>>>> dbd_describe'd 1 columns (row bytes: 1 max, 1 est avg, cache: >>>>>>>>>>> 1042) >>>>>>>>>>> <- prepare= DBI::st=HASH(0x19e4be10) at ./no-bind.plx line 20 >>>>>>>>>>> -> bind_param for DBD::Oracle::st >>>>>>>>>>> (DBI::st=HASH(0x19e4be10)~0x19e4bf50 ':x' 10) thr#19bae010 >>>>>>>>>>> dbd_bind_ph(): bind :x <== 10 (type 0 (DEFAULT (varchar))) >>>>>>>>>>> dbd_rebind_ph() (1): rebinding :x as NULL (not-utf8, ftype 1 >>>>>>>>>>> (VARCHAR), csid 0, csform 0, inout 0) >>>>>>>>>>> dbd_rebind_ph_char() (1): bind :x <== 10 (size 2/8/0, ptype >>>>>>>>>>> 5(VARCHAR), otype 1 ) >>>>>>>>>>> dbd_rebind_ph_char() (2): bind :x <== '10' (size 2/8, otype >>>>>>>>>>> 1(VARCHAR), indp 0, at_exec 1) >>>>>>>>>>> bind :x as ftype 1 (VARCHAR) >>>>>>>>>>> dbd_rebind_ph(): bind :x <== 10 (in, not-utf8, csid 873->0- >>>>>>>>>>>> 873, >>>>>>>>>>> ftype 1 (VARCHAR), csform 0->0, maxlen 8, maxdata_size 0) >>>>>>>>>>> <- bind_param= 1 at ./no-bind.plx line 25 >>>>>>>>>>> Doing execute >>>>>>>>>>> -> execute for DBD::Oracle::st >>>>>>>>>>> (DBI::st=HASH(0x19e4be10)~0x19e4bf50) thr#19bae010 >>>>>>>>>>> dbd_st_execute SELECT (out0, lob0)... >>>>>>>>>>> Statement Execute Mode is 0 (DEFAULT) >>>>>>>>>>> in ':x' [0,0]: len 2, ind 0, value=10 >>>>>>>>>>> dbd_st_execute SELECT returned (SUCCESS, rpc0, fn4, out0) >>>>>>>>>>> <- execute= '0E0' at ./no-bind.plx line 27 >>>>>>>>>>> Starting fetch >>>>>>>>>>> -> fetchrow_arrayref for DBD::Oracle::st >>>>>>>>>>> (DBI::st=HASH(0x19e4be10)~0x19e4bf50) thr#19bae010 >>>>>>>>>>> dbd_st_fetch 1 fields... >>>>>>>>>>> dbd_st_fetch no-more-data >>>>>>>>>>> <- fetchrow_arrayref= undef at ./no-bind.plx line 30 >>>>>>>>>>> Fetch complete : 0 rows >>>>>>>>>>> -> disconnect for DBD::Oracle::db >>>>>>>>>>> (DBI::db=HASH(0x19e4b270)~0x19e4bc60) thr#19bae010 >>>>>>>>>>> <- disconnect= 1 at ./no-bind.plx line 34 >>>>>>>>>>> -> DESTROY for DBD::Oracle::st >>>>>>>>>>> (DBI::st=HASH(0x19e4bf50)~INNER) >>>>>>>>>>> thr#19bae010 >>>>>>>>>>> <- DESTROY= undef >>>>>>>>>>> -> DESTROY for DBD::Oracle::db >>>>>>>>>>> (DBI::db=HASH(0x19e4bc60)~INNER) >>>>>>>>>>> thr#19bae010 >>>>>>>>>>> <- DESTROY= undef >>>>>>>>>>> >>>>>>>>>>> Here's the output from DBI 1.607, DBD::Oracle 1.22 ... >>>>>>>>>>> >>>>>>>>>>> au-stb-101-144:dev stbaldwin$ ./no-bind.plx >>>>>>>>>>> Using DBI 1.607 and DBD::Oracle 1.22 >>>>>>>>>>> DBI::db=HASH(0x86d920) trace level set to 0x0/5 (DBI @ 0x0/0) >>>>>>>>>>> in >>>>>>>>>>> DBI 1.607-ithread (pid 6000) >>>>>>>>>>> -> prepare for DBD::Oracle::db >>>>>>>>>>> (DBI::db=HASH(0x86d98c)~0x86d920 ' >>>>>>>>>>> SELECT 'z' >>>>>>>>>>> FROM TABLE(msc$stats_report_p.schema_top_n(:x)) >>>>>>>>>>> WHERE 1=0 >>>>>>>>>>> ') thr#800000 >>>>>>>>>>> New 'DBI::st' (for DBD::Oracle::st, >>>>>>>>>>> parent=DBI::db=HASH(0x86d920), id=undef) >>>>>>>>>>> dbih_setup_handle >>>>>>>>>>> (DBI::st=HASH(0x86db9c)=>DBI::st=HASH(0x86db54), >>>>>>>>>>> DBD::Oracle::st, 8442e8, Null!) >>>>>>>>>>> dbih_make_com(DBI::db=HASH(0x86d920), 41f6b0, >>>>>>>>>>> DBD::Oracle::st, >>>>>>>>>>> 284, 0) thr#800000 >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), Err, >>>>>>>>>>> DBI::db=HASH(0x86d920)) SCALAR(0x844234) (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), State, >>>>>>>>>>> DBI::db=HASH(0x86d920)) SCALAR(0x844294) (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), Errstr, >>>>>>>>>>> DBI::db=HASH(0x86d920)) SCALAR(0x844264) (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), TraceLevel, >>>>>>>>>>> DBI::db=HASH(0x86d920)) 5 (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), FetchHashKeyName, >>>>>>>>>>> DBI::db=HASH(0x86d920)) 'NAME' (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), HandleSetErr, >>>>>>>>>>> DBI::db=HASH(0x86d920)) undef (not defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), HandleError, >>>>>>>>>>> DBI::db=HASH(0x86d920)) undef (not defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), ReadOnly, >>>>>>>>>>> DBI::db=HASH(0x86d920)) undef (not defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), Profile, >>>>>>>>>>> DBI::db=HASH(0x86d920)) undef (not defined) >>>>>>>>>>> dbd_st_prepare'd sql SELECT (pl1, auto_lob1, check_sql1) >>>>>>>>>>> dbd_describe SELECT (EXPLICIT, lb 80)... >>>>>>>>>>> Describe col #1 type=96(CHAR) >>>>>>>>>>> Described col 1: dbtype 96(CHAR), scale 0, prec 1, nullok 1, >>>>>>>>>>> name >>>>>>>>>>> 'Z' >>>>>>>>>>> : dbsize 1, char_used 1, char_size 1, csid 873, csform 1, >>>>>>>>>>> disize 1 >>>>>>>>>>> fbh 1: ''Z'' NULLable, otype 96-> 5, dbsize 1/2, >>>>>>>>>>> p1.s0 >>>>>>>>>>> row cache OCI_ATTR_PREFETCH_ROWS 1042, >>>>>>>>>>> OCI_ATTR_PREFETCH_MEMORY 0 >>>>>>>>>>> rs_array_init: rs_array_on=0, rs_array_size=1 >>>>>>>>>>> dbd_describe'd 1 columns (row bytes: 1 max, 1 est avg, cache: >>>>>>>>>>> 1042) >>>>>>>>>>> <- prepare= DBI::st=HASH(0x86db9c) at ./no-bind.plx line 20 >>>>>>>>>>> -> bind_param for DBD::Oracle::st >>>>>>>>>>> (DBI::st=HASH(0x86db9c)~0x86db54 ':x' 10) thr#800000 >>>>>>>>>>> dbd_bind_ph(): bind :x <== 10 (type 0 (DEFAULT (varchar))) >>>>>>>>>>> Can't bind unknown placeholder ':x' (':x') at ./no-bind.plx >>>>>>>>>>> line >>>>>>>>>>> 25. >>>>>>>>>>> -> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x86db54)~INNER) >>>>>>>>>>> thr#800000 >>>>>>>>>>> <- DESTROY= undef >>>>>>>>>>> -> DESTROY for DBD::Oracle::db (DBI::db=HASH(0x86d920)~INNER) >>>>>>>>>>> thr#800000 >>>>>>>>>>> <- DESTROY= undef >>>>>>>>>>> >>>>>>>>>>> If I change the SELECT list from 'z' to *, I don't get the >>>>>>>>>>> error. >>>>>>>>>>> Here's the trace output ... >>>>>>>>>>> >>>>>>>>>>> au-stb-101-144:dev stbaldwin$ ./no-bind.plx >>>>>>>>>>> Using DBI 1.607 and DBD::Oracle 1.22 >>>>>>>>>>> DBI::db=HASH(0x86d920) trace level set to 0x0/5 (DBI @ 0x0/0) >>>>>>>>>>> in >>>>>>>>>>> DBI 1.607-ithread (pid 6027) >>>>>>>>>>> -> prepare for DBD::Oracle::db >>>>>>>>>>> (DBI::db=HASH(0x86d98c)~0x86d920 ' >>>>>>>>>>> SELECT * >>>>>>>>>>> FROM TABLE(msc$stats_report_p.schema_top_n(:x)) >>>>>>>>>>> WHERE 1=0 >>>>>>>>>>> ') thr#800000 >>>>>>>>>>> New 'DBI::st' (for DBD::Oracle::st, >>>>>>>>>>> parent=DBI::db=HASH(0x86d920), id=undef) >>>>>>>>>>> dbih_setup_handle >>>>>>>>>>> (DBI::st=HASH(0x86db9c)=>DBI::st=HASH(0x86db54), >>>>>>>>>>> DBD::Oracle::st, 8442e8, Null!) >>>>>>>>>>> dbih_make_com(DBI::db=HASH(0x86d920), 41f6b0, >>>>>>>>>>> DBD::Oracle::st, >>>>>>>>>>> 284, 0) thr#800000 >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), Err, >>>>>>>>>>> DBI::db=HASH(0x86d920)) SCALAR(0x844234) (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), State, >>>>>>>>>>> DBI::db=HASH(0x86d920)) SCALAR(0x844294) (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), Errstr, >>>>>>>>>>> DBI::db=HASH(0x86d920)) SCALAR(0x844264) (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), TraceLevel, >>>>>>>>>>> DBI::db=HASH(0x86d920)) 5 (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), FetchHashKeyName, >>>>>>>>>>> DBI::db=HASH(0x86d920)) 'NAME' (already defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), HandleSetErr, >>>>>>>>>>> DBI::db=HASH(0x86d920)) undef (not defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), HandleError, >>>>>>>>>>> DBI::db=HASH(0x86d920)) undef (not defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), ReadOnly, >>>>>>>>>>> DBI::db=HASH(0x86d920)) undef (not defined) >>>>>>>>>>> dbih_setup_attrib(DBI::st=HASH(0x86db54), Profile, >>>>>>>>>>> DBI::db=HASH(0x86d920)) undef (not defined) >>>>>>>>>>> dbd_preparse scanned 1 distinct placeholders >>>>>>>>>>> dbd_st_prepare'd sql SELECT (pl1, auto_lob1, check_sql1) >>>>>>>>>>> dbd_describe SELECT (EXPLICIT, lb 80)... >>>>>>>>>>> Describe col #1 type=12((UNKNOWN SQL TYPECODE 12)) >>>>>>>>>>> Described col 1: dbtype 12((UNKNOWN SQL TYPECODE 12)), scale >>>>>>>>>>> 0, >>>>>>>>>>> prec 75, nullok 1, name STATS_DATE >>>>>>>>>>> : dbsize 21, char_used 0, char_size 0, csid 0, csform 0, >>>>>>>>>>> disize 75 >>>>>>>>>>> fbh 1: 'STATS_DATE' NULLable, otype 12-> 5, dbsize 21/76, >>>>>>>>>>> p75.s0 >>>>>>>>>>> Describe col #2 type=1(VARCHAR) >>>>>>>>>>> Described col 2: dbtype 1(VARCHAR), scale 0, prec 128, >>>>>>>>>>> nullok 1, >>>>>>>>>>> name SERIES_KEY >>>>>>>>>>> : dbsize 128, char_used 1, char_size 128, csid 873, >>>>>>>>>>> csform >>>>>>>>>>> 1, disize 128 >>>>>>>>>>> fbh 2: 'SERIES_KEY' NULLable, otype 1-> 5, dbsize 128/129, >>>>>>>>>>> p128.s0 >>>>>>>>>>> Describe col #3 type=2(NVARCHAR2) >>>>>>>>>>> Described col 3: dbtype 2(NVARCHAR2), scale 0, prec 0, >>>>>>>>>>> nullok 1, >>>>>>>>>>> name SIZE_MB >>>>>>>>>>> : dbsize 22, char_used 0, char_size 0, csid 0, csform 0, >>>>>>>>>>> disize 171 >>>>>>>>>>> fbh 3: 'SIZE_MB' NULLable, otype 2-> 5, dbsize 22/172, >>>>>>>>>>> p0.s0 >>>>>>>>>>> Describe col #4 type=2(NVARCHAR2) >>>>>>>>>>> Described col 4: dbtype 2(NVARCHAR2), scale 0, prec 0, >>>>>>>>>>> nullok 1, >>>>>>>>>>> name N_ROWS >>>>>>>>>>> : dbsize 22, char_used 0, char_size 0, csid 0, csform 0, >>>>>>>>>>> disize 171 >>>>>>>>>>> fbh 4: 'N_ROWS' NULLable, otype 2-> 5, dbsize 22/172, >>>>>>>>>>> p0.s0 >>>>>>>>>>> row cache OCI_ATTR_PREFETCH_ROWS 135, >>>>>>>>>>> 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 4 columns (row bytes: 193 max, 80 est avg, >>>>>>>>>>> cache: >>>>>>>>>>> 135) >>>>>>>>>>> <- prepare= DBI::st=HASH(0x86db9c) at ./no-bind.plx line 20 >>>>>>>>>>> -> bind_param for DBD::Oracle::st >>>>>>>>>>> (DBI::st=HASH(0x86db9c)~0x86db54 ':x' 10) thr#800000 >>>>>>>>>>> dbd_bind_ph(): bind :x <== 10 (type 0 (DEFAULT (varchar))) >>>>>>>>>>> dbd_rebind_ph() (1): rebinding :x as NULL (not-utf8, ftype 1 >>>>>>>>>>> (VARCHAR), csid 0, csform 0, inout 0) >>>>>>>>>>> dbd_rebind_ph_char() (1): bind :x <== 10 (size 2/4/0, ptype >>>>>>>>>>> 5(VARCHAR), otype 1 ) >>>>>>>>>>> dbd_rebind_ph_char() (2): bind :x <== '10' (size 2/4, otype >>>>>>>>>>> 1(VARCHAR), indp 0, at_exec 1) >>>>>>>>>>> bind :x as ftype 1 (VARCHAR) >>>>>>>>>>> dbd_rebind_ph(): bind :x <== 10 (in, not-utf8, csid 873->0- >>>>>>>>>>>> 873, >>>>>>>>>>> ftype 1 (VARCHAR), csform 0->0, maxlen 4, maxdata_size 0) >>>>>>>>>>> <- bind_param= 1 at ./no-bind.plx line 25 >>>>>>>>>>> Doing execute >>>>>>>>>>> -> execute for DBD::Oracle::st >>>>>>>>>>> (DBI::st=HASH(0x86db9c)~0x86db54) >>>>>>>>>>> thr#800000 >>>>>>>>>>> dbd_st_execute SELECT (out0, lob0)... >>>>>>>>>>> Statement Execute Mode is 0 (DEFAULT) >>>>>>>>>>> in ':x' [0,0]: len 2, ind 0, value=10 >>>>>>>>>>> dbd_st_execute SELECT returned (SUCCESS, rpc0, fn4, out0) >>>>>>>>>>> <- execute= '0E0' at ./no-bind.plx line 27 >>>>>>>>>>> Starting fetch >>>>>>>>>>> -> fetchrow_arrayref for DBD::Oracle::st >>>>>>>>>>> (DBI::st=HASH(0x86db9c)~0x86db54) thr#800000 >>>>>>>>>>> dbd_st_fetch 4 fields... >>>>>>>>>>> dbd_st_fetch no-more-data >>>>>>>>>>> <- fetchrow_arrayref= undef at ./no-bind.plx line 30 >>>>>>>>>>> Fetch complete : 0 rows >>>>>>>>>>> -> disconnect for DBD::Oracle::db >>>>>>>>>>> (DBI::db=HASH(0x86d98c)~0x86d920) thr#800000 >>>>>>>>>>> <- disconnect= 1 at ./no-bind.plx line 34 >>>>>>>>>>> -> DESTROY for DBD::Oracle::st (DBI::st=HASH(0x86db54)~INNER) >>>>>>>>>>> thr#800000 >>>>>>>>>>> <- DESTROY= undef >>>>>>>>>>> -> DESTROY for DBD::Oracle::db (DBI::db=HASH(0x86d920)~INNER) >>>>>>>>>>> thr#800000 >>>>>>>>>>> <- DESTROY= undef >>>>>>>>>>> >>>>>>>>>>> I don't know if this is a DBI error or a DBD::Oracle not- >>>>>>>>>>> playing- >>>>>>>>>>> nice error. Any help would be much appreciated. >>>>>>>>>>> >>>>>>>>>>> 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. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> 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. >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> 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. >>> >>> >> >> > > > 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. > >