我正在开发一个带有Oracle数据库的ASP.NET项目 . 我们使用TOAD来添加/管理存储过程 - 通常我喜欢TOAD和Oracle . 我发现令人沮丧的一件事是找到一种简单的方法来测试Oracle Stored Proc,例如SQL Server的“exec [SP_NAME] Param1,Param2,ParamN”语法 .
我们所有的存储过程都输出Ref Cursors . 以下是存储过程的示例:
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;
/
有什么建议?
4 回答
您只需要一个调用存储过程的脚本,并为ref光标输出提供一个绑定变量,以便在编辑器窗口的TOAD网格中显示它 .
然后运行此TOAD将提示您'bind':result_set,只需从类型列表中选择ref cursor,然后结果将显示在网格中 . 诀窍是将自己视为调用存储过程的“客户端”,并且需要自己的引用光标来存储结果 .
如果您只是在寻找一种调用SP的方法,那么Oracle的方法是:
我不使用Toad,但您应该能够将其放入SQL窗口并执行它 .
在sqplus中,您可以使用语法
SQL> var rc refcursor
SQL> exec APP_DB1.GET_JOB(要查询的作业ID,:rc)
SQL> print rc
应该这样做 . 第一行定义了绑定变量 . 您还可以为作业ID定义变量,或者只需键入它 .
TOAD使用Russel的示例脚本在网格中显示结果 . 以脚本运行 .
谢谢!