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

Reply via email to