我正在使用Oracle数据库开发一个ASP.NET项目.我们正在使用TOAD来添加/管理存储过程 – 通常我喜欢TOAD和Oracle.我发现令人沮丧的一件事是找到一种测试Oracle Stored Proc的简单方法,例如SQL Server的“exec [SP_NAME] Param1,Param2,ParamN”语法.
我们所有的存储过程都输出Ref Cursors.这是一个Stored Proc的例子:
CREATE OR REPLACE PROCEDURE APP_DB1.GET_JOB ( p_JOB_ID IN JOB.JOB_ID%type,outCursor OUT MYGEN.sqlcur ) IS BEGIN OPEN outCursor FOR SELECT * FROM JOB WHERE JOB_ID = p_JOB_ID; END GET_JOB; /
有什么建议么?
解决方法
您只需要一个调用存储过程的脚本,并具有用于ref cursor输出的绑定变量,以在编辑器窗口中将其显示在TOAD的网格中.
DECLARE type result_set is ref cursor; BEGIN APP_DB1.GET_JOB(1,:result_set); END;
当您运行此TOAD将提示您“绑定”:result_set,只需从列表中选择ref cursor,然后结果将显示在网格中.诀窍就是把自己当作一个’客户端’调用你的存储过程,你需要你自己的ref游标来存储结果.