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

OracleデータベースでPL/SQL弱参照カーソルを作成する方法

    PL/SQLの弱参照カーソルが必要な理由

    前のチュートリアルでは、強力な参照カーソルを使用して、さまざまな列からさまざまなデータ型のデータをフェッチする方法を学習しました。強力な参照カーソルには、レコードデータ型のみになり得る固定の戻り型があるという制限があります。ただし、固定リターンタイプを使用すると、強力なrefカーソルにより、アプリケーション開発でエラーが発生しにくくなります。ただし、これには、ユーザー定義のレコードデータ型を作成するための追加の手順が必要です。

    では、ユーザー定義のレコードデータ型を作成する必要のない、参照カーソルを使用して異なるデータ型のデータをフェッチする別の方法はありませんか?リターンタイプが固定されていない参照カーソルを作成できませんか?このブログでこれらの質問の答えを見つけましょう。

    OracleデータベースのPL/SQL弱参照カーソルとは何ですか?

    戻り型が固定されていない参照カーソルは、弱参照カーソルと呼ばれます。

    弱参照カーソルを任意のSELECTステートメントで使用できますか?

    はい、できます。弱い参照カーソルには強い参照カーソルのような固定の戻りタイプがないため、すべてのタイプのSELECTステートメントに対して開かれています。これにより、他のカーソルと比較して最も頻繁に使用される参照カーソルにもなります。

    私は今あなたが上記の質問に対する答えを得たと思います。 PL / SQL弱参照カーソルは、さまざまなデータ型のデータをフェッチするための代替方法です。弱参照カーソルには固定の戻り型がないため、個別のレコードデータ型を作成する必要はありません。すべての疑問を解消したので、OracleDatabaseでPL/SQLの弱い参照カーソルを作成する方法を学習するのに役立つ例を見てみましょう。

    弱参照カーソルの構文

    TYPE ref_cursor_name IS REF CURSOR;

    例:Oracleデータベースで弱参照カーソルを作成する方法

    SET SERVEROUTPUT ON;
    DECLARE
        /*Declare Weak Ref Cursor*/
        TYPE wk_RefCur IS REF CURSOR;
        /*Declare Cursor Variable of ref cursor type*/
        cur_var wk_RefCur;
        
         /*Declare two "Anchored Datatype Variable" for holding data from the cursor*/
        f_name  employees.first_name%TYPE;
        emp_sal employees.salary%TYPE;
    BEGIN
        OPEN cur_var FOR SELECT first_name, Salary FROM employees WHERE employee_id = 100;
        FETCH cur_var INTO f_name, emp_sal;
        CLOSE cur_var;
        DBMS_OUTPUT.PUT_LINE (f_name ||' '||emp_sal);
    END;
    /
    

    先に進み、このプログラムを実行して、出力がどうなるかを確認してください。必要に応じて、GITリポジトリからこのスクリプトをダウンロードすることもできます。リンクは次のとおりです[スクリプト/Gitリポジトリ]

    ビデオを見てよりよく学ぶ場合は、PL/SQL弱参照カーソルに関するビデオチュートリアルを次に示します。

    これは、OracleデータベースでPL/SQL弱参照カーソルを作成する方法に関するチュートリアルです。ですから、必ずYouTubeチャンネルに登録してください。次のチュートリアルでは、OracleDatabaseのSysRefCursorとは何かを学習します。ありがとう、そして素晴らしい一日を!


    1. MySQLでは、数字を引用する必要がありますか?

    2. 1つのSQLに複数のWITHASを含めることはできますか-OracleSQL

    3. Oracleは、タイムゾーン付きのTIMESTAMPをDATEに変換します

    4. MySQLデータベースでのリンクリストの取得