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/

Reply via email to