11

I was able to create a stored procedure for an Oracle database, but now I can't figure out how to run it. I'm using SQuirrel SQL and this worked to create the procedure:

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;
/

I want to be able to get and display the result set. I've tried using call MyProc('param'), but this doesn't work (wrong number of arguments error). I've searched extensively on this site and others but nothing has been useful. Please help!

4

5 に答える 5

4

Squirrel SQL で動作する唯一の構文はPL/SQL ブロックです。

declare
v_label  varchar2:='SOMELABEL';
TYPE ref_cursor IS REF CURSOR;
v_cur_results ref_cursor;
begin
MyProc (v_label, v_cur_results)
end;
/
于 2011-08-04T09:48:16.097 に答える
1

この記事で説明しているように、「実行」の代わりに「呼び出し」を使用すると問題が解決するはずです。

于 2012-05-25T09:44:22.390 に答える
0
var v_result sys_refcursor

exec MyProc ('test label',:v_result)
于 2011-03-29T17:27:24.157 に答える