David,

> numeric when passed a 6 digit number. Here is an example of how it is
> called within Oracle:
> DECLARE
>    RetVal NUMBER;
>
> BEGIN
>    RetVal := COLLEGE.SPISFINANCIAL ( 123456 );
> END;

Try calling it the same way wrapped in a begin end block in DBI

> eval {
>      my $func = $dbh->prepare(q{
>          BEGIN
>              :retval := SPISFINANCIAL(:parameter1 // changes here
>              );
>          END;
>      });
>
>      $func->bind_param(":parameter1", '123456');
>      $func->bind_param_inout(":retval", \$retval, 6);
>      $func->execute;
>      $dbh->commit;
> };
>
> if( $@ ) {
>      warn "!! Execution of stored procedure failed!!\n$DBI::errstr\n";
>      $dbh->rollback;
> }
>
> However, when I call $func->execute; DBD returns the error
"DBD::Oracle::st
> execute failed." followed by "PLS00201: identifier 'COLLEGE.SPISFINANCIAL'
> must be declared"
Are you connected to the same schema as the function was defined in?
In other words is there a function COLLEGE.SPISFINANCIAL
or does it belong to another schema?

David


Reply via email to