Does anyone have an example of how to set up and call an oracle function
that returns a number? Embedding within an sql statement as I normally
use a query does not work, and I receive errors if I attempt to format
it like an example in the dbd document:
Here is a section of my code.
my $catalog=SMB;
my $code=$info-{.code};
my $itemid=10501076150130;
my $dbh = DBI-connect('DBI:Oracle:ORCL','a', 'b')
or die Couldn't connect to database: .
DBI-errstr;
my $sth = $dbh-prepare(SELECT item_owner FROM item where item_id =
'$catalog$itemid')
or die Couldn't prepare statement: .
$dbh-errstr;
my $qty;
my @data;
$sth-execute() # Execute the query
or die Couldn't execute statement: . $sth-errstr;
(@data) = $sth-fetchrow;
$qty = @data[2];
print data returned = @data\n;
$sth = $dbh-prepare(BEGIN :result = getpickableqty(:id) END;);
$sth-bind_param(:id, $catalog$itemid);
my ($result) = 0;
$sth-bind_param_inout(:result, \$result, 100);
$sth-execute();
print func_name returned '$result' \n;
Results of the program is this:
data returned = SMB10501076150130 * The
regular SQL works ok **
DBD::Oracle::st execute failed: ORA-06550: line 1, column 15:
PLS-00103: Encountered the symbol = when expecting one of the
following:
:= . ( @ % ; indicator
ORA-06550: line 1, column 37:
PLS-00103: Encountered the symbol END when expecting one of the
following:
. ( * % - + ; / at mod rem return returning
an exponent (**) and or || (DBD ERROR: OCIStmtExecute) at getinv.p
line 75.
func_name returned '0'
Can anyone tell me what code I have set up incorrectly here? Please
reply directly as I just subscribed to the list.
Thanks
Carlin Anderson
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]