高手请进:怎样调用ORACLE的包中自定义的函数(非存储过程)
我想调用自定义的包体中的函数myFun(a varchar2,b varchar2):return number;用了两种方法都不行;
第一种,建一个adoQuery,sql.add('select mypakage.myfun(x,y) cs from dual');(为做实验,其中的x,y都用的常量),使其active:=true,不报错;建一个dbgrid,指定它的datasouce为该query对应的dataset,但没有数据;而在sqlplus下,可以得到数据200;
第二种,建一个adostoreproc adosp_myfunc,建立3个参数,其中rt为returnValue型参数,integer类型
with adosp_myfunc do
begin
parameters.paramByName('a').value:=x;
parameters.paramByName('b').value:=y;
parameters.paramByName('rt').value:=0;
execProc;
edit1.text:=parameters.paramByName('rt').asString;
end;
报错参数个数错,如果不加rt参数,edit句报错.
csdn中,好象大家都用的output参数的存储过程,如果我不想把function 改为procedure(,,out)形式,该怎样做呢?