ON Thu, Oct 21, 2004 at 10:41:28AM +0100, Tim Bunce wrote: > On Thu, Oct 21, 2004 at 07:52:42AM +0200, Honza Pazdziora wrote: > > > > t/25plsql is now clean. The perl -Mblib yields > > > > Can't select from function (ORA-06553: PLS-561: character set mismatch on value > > for parameter 'ARG2' > > ORA-06553: PLS-561: character set mismatch on value for parameter 'ARG' (DBD > > ERROR: error possibly near <*> indicator at char 7 in 'SELECT > > <*>dbd_oracle_nvctest(:p1, :p2) FROM DUAL')) > > It's odd that the error is happening on the prepare.
>From the trace you sent I can see it's happening on the describe. Please try this patch over the original. (Same for Steffan and H.Merijn.) Tim. Index: t/25plsql.t =================================================================== --- t/25plsql.t (revision 506) +++ t/25plsql.t (working copy) @@ -314,8 +314,12 @@ end if; END; }) or skip("Can't create a function ($DBI::errstr)", 16); - my $sth = $dbh->prepare(qq{SELECT $func_name(?, ?) FROM DUAL}); - ok(0, $sth); + my $sth = $dbh->prepare(qq{SELECT $func_name(?, ?) FROM DUAL}, { + # Oracle 8 describe fails with ORA-06553: PLS-561: charset mismatch + ora_check_sql => 0, + }); + ok(0, $sth, "Can't prepare select from function ($DBI::errstr)"); + skip("Can't select from function ($DBI::errstr)", 15) unless $sth; ok(0, $sth->bind_columns(\my $returnVal)); for (1..2) { ok(0, $sth->bind_param(1, "foo", { ora_csform => SQLCS_NCHAR }));