I don't understand what the error I get has to do with the executed code. Can someone enlighten me?
--8<--- use strict; use warnings; use DBI; my ($user, $pass) = split m{/}, $ENV{ORACLE_USERID}; my $dbh = DBI->connect ("dbi:Oracle:", $user, $pass, { AutoCommit => 0 }); $dbh->do (qq; create table w_test ( c_test numeric (9), v_test numeric (4), s_test varchar (4) ); ); $dbh->commit; my $sti = $dbh->prepare (qq; insert into w_test values (?, ?, ?); ); $sti->execute (1, 1, " "); $sti->finish; $dbh->commit; $dbh->do (qq; alter table w_test add (w_test blob); ); $dbh->commit; my $stu = $dbh->prepare (qq; update w_test set w_test = ? where c_test = ? and v_test = 1; ); $stu->execute ("foo\nbar", 1); $stu->finish; $dbh->commit; -->8--- $ perl w-test.pl DBD::Oracle::st execute failed: ORA-01465: invalid hex number (DBD ERROR: error possibly near <*> indicator at char 41 in ' update w_test set w_test = :p<*>1 where c_test = :p2 and v_test = 1') [for Statement " update w_test set w_test = ? where c_test = ? and v_test = 1" with ParamValues: :p1='foo bar', :p2=1] at w-test.pl line 39. $ perl -MV=DBD::Oracle DBD::Oracle /pro/asql/o82C/lib/perl/5.8.8/DBD/Oracle.pm: 1.22 Same for Oracle 8, Oracle 9 and Oracle 10 -- H.Merijn Brand Amsterdam Perl Mongers http://amsterdam.pm.org/ using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00, 11.11, 11.23, and 11.31, SuSE 10.1, 10.2, and 10.3, AIX 5.2, and Cygwin. http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/