Hello,
I have a function in the Oracle database, already
created, which take in no input value, out put a
status that is varchar2(6).
However, when I try to execute the following SQL in
DBD::Oracle, there was error appear.
The SQL code:
==================
BEGIN
:t := test_func;
END;
===================
The perl code:
===================
my $tb_csr;
my $result = "";
$tb_csr = $dbi->{DBI}->prepare(q{
BEGIN
:t := test_func;
END;
});
print "prepare OK\n";
$tb_csr->bind_param_inout(":t", \$result, 20);
print "bind OK\n";
$tb_csr->execute;
print "EXEC OK\n";
print "Status: $result\n";
========================================
When I execute the code, I get the following error:
--------------------------
prepare OK
bind OK
DBD::Oracle::st execute failed: ORA-24365: error in
character conversion (DBD ERROR: OCIStmtExecute)
at....
---------------------------
It seems there is an execution error. But, I just
can't understand what went wrong. Check over at Oracle
site, it stated:
==================================
ORA-24365 error in character conversion
Cause: This usually occurs during conversion of a
multibyte character data when the source data is
abnormally terminated in the middle of a multibyte
character.
Action: Make sure that all multibyte character
data is properly terminated.
=================================
Any idea what exactly went wrong?
Thanks,
Sei Heng
ps: I am using DBD::Oracle-1.06. Do I need to upgrade
to a newer version.
__________________________________________________
Do You Yahoo!?
Yahoo! Sports - sign up for Fantasy Baseball
http://sports.yahoo.com