Calling oracle function which returns SYS_REFCURSOR throws an exception in version 8.5.521.0. In version 6.5 it doesn't.
Same code in a procedure with out SYS_REFCURSOR works fine.
C# code:
Code: Select all
using( MIRTUSZContext.MIRTUSZDataContext mirtuszDC = new MIRTUSZContext.MIRTUSZDataContext() )
{
var resultGood = mirtuszDC.FM_GET_DOKID_BY_HASH_OUT ( "test" ); // works fine
var resultException = mirtuszDC.FM_GET_DOKID_BY_HASH( "test" ); // throws exception
}
Code: Select all
function FM_GET_DOKID_BY_HASH( I_LIVELINK_HASH in varchar2 ) return SYS_REFCURSOR is
L_REC_SET SYS_REFCURSOR;
L_SQL_STR varchar2(2000);
begin
open L_REC_SET for 'select 1 AZONOSITO,
''abcd'' DOCID
from dual';
return L_REC_SET;
end;
PROCEDURE FM_GET_DOKID_BY_HASH_OUT( I_LIVELINK_HASH in varchar2, O_REC_SET OUT SYS_REFCURSOR ) is
L_SQL_STR varchar2(2000);
begin
open O_REC_SET for 'select 1 AZONOSITO,
''abcd'' DOCID
from dual';
end;
Code: Select all
ORA-06550: 2 row, 3 column:
PLS-00306: wrong number or types of arguments in call to 'FM_GET_DOKID_BY_HASH'
ORA-06550: 2 row, 3 column:
PL/SQL: Statement ignored