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

Oracleストアドプロシージャ(カーソル付き)はどのように機能しますか?

    ストアドプロシージャは、結果に対して何もしていないだけの何かを返します。

    これは、SQLDeveloperで次のスクリプトを実行するだけで実行できます。

    
    VARIABLE csr REFCURSOR;
    EXEC getRejectedReasons(:csr); -- the colon identifies the parameter as a variable
    PRINT csr;
    

    別の方法は、各行をフェッチして、ある種の処理を行うことです。

    
    DECLARE
      -- sys_refcursor is weakly typed
      refcsr  SYS_REFCURSOR;
      -- define a record so we can reference the fields
      rej_rec Reasons_for_Rejection%ROWTYPE;
    BEGIN
    
      getRejectedReasons(refcsr);
    
       -- loop through the results  
       LOOP
          -- gets one row at a time
          FETCH refcsr INTO rej_rec;
          -- if the fetch doesn't find any more rows exit the loop
          EXIT WHEN refcsr%NOTFOUND;
          -- Do something here.  
          -- For example : DBMS_OUTPUT.PUT_LINE(rej_rec.reason_desc);
        END LOOP;
    
    END;
    


    1. PostgreSQLに存在しない場合はCREATEDATABASEをシミュレートしますか?

    2. mysql2のインストール中にエラーが発生しました:gemネイティブ拡張のビルドに失敗しました

    3. 結果セットの最後のレコードを取得します

    4. AmazonRedshiftでのNULLSFIRSTの実装