2012-04-16 20 views
0

私はSYS_REFCURSORをとり、それをJSONに変換するプロシージャを持っています。PL/SQL参照カーソルとしての静的カーソル変数

上記を呼び出すプロシージャでは、通常のようにCURSORを定義してREF CURSORとして供給しようとしています。

私はPLS-00361を受け取っています。

私はOPEN FORコンストラクトを使用することができますが、私は他の場所で自分のCursorを使用する必要があり、複製が気に入らないと思います。

アドバイスはありますか?

PROCEDURE LIST_EMPLOYEES 
    AS 

    l_ref_cursor SYS_REFCURSOR; 

    CURSOR c_emps 
    IS 
    SELECT email_address 
     FROM employees; 

    BEGIN 

    OPEN c_emps; 
    FETCH c_emps INTO l_ref_cursor; 

    json_utils.refcursor_to_json_via_http(l_ref_cursor, 
              'employees'); 

    CLOSE l_ref_cursor; 

    EXCEPTION 
    WHEN others 
    THEN 
    log_error; 
    END LIST_EMPLOYEES; 

よろしく、 ローレンス。あなたはREF CURSORにカーソルをフェッチしないでしょう

答えて

0

、あなたは、単にそれを開くでしょう:

PROCEDURE LIST_EMPLOYEES AS 

    l_ref_cursor SYS_REFCURSOR; 

BEGIN 

    OPEN l_ref_cursor FOR SELECT email_address FROM employees; 

    json_utils.refcursor_to_json_via_http(l_ref_cursor, 'employees'); 

    CLOSE l_ref_cursor; 

END LIST_EMPLOYEES; 
+0

おかげヴィンセント、私はそれを行うことができます理解し、私はこれを複数回やりたい場合は?カーソルを何度も何度もやり直す必要があります。 – retrodev

+0

このカーソルが複数回必要な場合は、SYS_REFCURSORを返す関数を作成し、その関数を呼び出してください。 'json.refcursor_to_json_via_http(my_function、 'employees');' –

関連する問題