在Squirrel SQL中调用Oracle存储过程

Kay*_*ght 10 java oracle squirrel-sql

我能够为Oracle数据库创建存储过程,但现在我无法弄清楚如何运行它.我正在使用SQuirrel SQL,这有助于创建过程:

CREATE OR REPLACE PROCEDURE MyProc(label IN varchar2, results OUT sys_refcursor) AS
BEGIN
OPEN results FOR
    SELECT Label, Count, Timestamp 
        FROM table1
            LEFT JOIN table2 ON table1.Name=table2.Name 
    WHERE table1.Label=label
    ORDER BY Timestamp;
END;
/
Run Code Online (Sandbox Code Playgroud)

我希望能够获得并显示结果集.我尝试过使用call MyProc('param'),但这不起作用(错误的参数数量错误).我在这个网站和其他网站上进行了广泛的搜索,但没有任何用处.请帮忙!

Kai*_*Kai 17

以下工作来运行存储过程:

begin
   procedurename;
end;
/
Run Code Online (Sandbox Code Playgroud)

是的,最后的斜线是必要的!

begin...end;声明了一个PL/SQL块(Oracle的特异性).斜杠是运行块的命令.

/(削减)

执行最近执行的SQL命令或存储在SQL缓冲区中的PL/SQL块.

[...]

Oracle数据库联机文档,10g第2版(10.2)/ SQL*Plus®用户指南和参考


Sha*_*rma 0

var v_result sys_refcursor

exec MyProc ('test label',:v_result)
Run Code Online (Sandbox Code Playgroud)