sql >> データベース >  >> RDS >> Oracle

PL / SQL:明示カーソルを参照カーソルに変換しますか?

    私のコメントで述べたように、別のカーソルのsys_refcursorを開くことは、Oracle11gまで許可されていません。 sys_refcursorの使用を要求する何かをしようとしているので、一度の方法は以下のようになります:

    タイプを作成する

    CREATE TYPE va IS TABLE OF NUMBER;
    /
    

    ブロック:

    DECLARE
       CURSOR c
       IS
          SELECT employee_id FROM employee;
    
       rc    SYS_REFCURSOR;
       var   va;
    BEGIN
       OPEN c;
    
       FETCH c BULK COLLECT INTO var;
    
       CLOSE c;
    
       OPEN rc FOR SELECT COLUMN_VALUE FROM TABLE (var);
    END;
    /
    

    ここで、最後に再びSELECTを使用していることがわかります。 ref_cursorのステートメント 。通常の方法を使用したくない場合と同じように、別の方法を使用しました。




    1. SQLUPDATE文字列CONCATが追加されたフィールドのすべての値が機能しない

    2. PHP/MySQLのより良いユーザー検索

    3. パラメータ化されたクエリ

    4. Laravelでのパフォーマンスが悪い