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

Oracleデータベースでパラメータを使用してPL/SQLストアドプロシージャを作成する方法

    前のチュートリアルでは、パラメーターなしでストアドプロシージャを作成する方法について説明しました。ただし、パラメータを受け入れるストアドプロシージャを作成する必要がある場合があります。結局のところ、これらのサブルーチンは、可能な限り最も簡単な方法で問題を解決するのに役立ちます。したがって、本日このブログでは、Oracleデータベースでパラメータを使用してストアドプロシージャを作成する方法を学習します

    PL / SQLプログラミングに不慣れで、ストアドプロシージャとは何か疑問に思っている人のために?ストアドプロシージャの基本的な理論を説明する別のブログを作成したので心配しないでください。そのブログはここで確認できます。

    それでは、パラメータを使用してPL / SQLストアドプロシージャを作成する方法のデモンストレーションを見てみましょう!

    ステップ1:ストアドプロシージャのヘッダーを作成する

    プロシージャのヘッダーで、その署名を定義します。

    CREATE OR REPLACE PROCEDURE emp_sal
    (dep_id NUMBER, sal_raise NUMBER) 
    IS
    

    ヘッダーは前回のチュートリアルで見たものと非常に似ていますが、今回のプロシージャはNUMBERデータ型のdep_idとsal_raiseのパラメータを受け入れる点が異なります。

    ステップ2:ストアドプロシージャの実行セクションを作成する

    実行セクションでは、ストアドプロシージャの動作を定義するすべての実行可能ステートメントを記述します。

    BEGIN
      UPDATE employees SET salary = salary * sal_raise WHERE department_id = dep_id;
    END;
    /
    

    理解を深めるために、私はこのコードをできるだけ単純にするように努めました。実行セクションには、UPDATEというDMLステートメントが1つだけあります。これを使用して、employeeテーブルのsalary列を更新します。

    このようにビジネスロジックを記述し、それらをプロシージャにまとめて、必要に応じてアプリで呼び出すことができます。これにより、アプリをより細かく制御できるようになります。また、同じコードを何度も書く必要がなくなります。

    この手順では、部門IDと昇給の数値の2つのパラメーターを受け入れます。 dep_idである最初のパラメーターは、部門のIDを決定するために使用されます。 2番目のパラメータであるsal_raiseは、昇給の乗算係数になります。

    同じことのより深い理解については、私のYouTubeチャンネルのビデオチュートリアルをご覧ください。そこで、上記のストアドプロシージャのすべての行とキーワードについて詳しく説明しました。

    上記のすべてのコードをPL/SQLユニットという名前の単一のチャンクにまとめましょう。

    部門全体の昇給のためのストアドプロシージャ

    CREATE OR REPLACE PROCEDURE emp_sal( dep_id NUMBER, sal_raise NUMBER) 
    IS
    BEGIN
      UPDATE emp SET salary = salary * sal_raise WHERE department_id = dep_id;
    END;
    /
    

    ストアドプロシージャを正常に作成したら、次にプログラムまたはコードでそれを呼び出す必要があります。前回のチュートリアルでは、Oracleデータベースでプロシージャを呼び出すさまざまな方法を紹介しました。同じことについては、そのチュートリアルを参照できます。

    これは、OracleDatabaseでパラメータを使用してPL/SQLストアドプロシージャを作成する方法に関するチュートリアルです。ソーシャルメディアで共有して、他の人の学習を助けてください。

    今日は以上です。良い一日を!


    1. JSON列の配列の要素をクエリします

    2. MariaDBでのLOG()のしくみ

    3. なぜデータモデリングが必要なのですか?

    4. SQLServerで月名を月番号に変換する