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

PROCEDURE pl/sqlに変換します

    変更する必要があるのはDECLAREだけです (匿名ブロックの開始を示します)CREATE PROCEDURE 、置換変数を介して現在設定している変数を仮引数として使用します。代わりに:

    DECLARE
         veno  emp.empno%type:=&veno;
         vsal  emp.sal%type;
         vexp  number;
    BEGIN
    ...
    END;
    /
    

    作る:

    CREATE OR REPLACE PROCEDURE my_proc (veno IN emp.empno%type)
    AS
         vsal  emp.sal%type;
         vexp  number;
    BEGIN
    ...
    END;
    /
    

    その後、匿名ブロックから、またはSQL*PlusまたはSQLDeveloperでexecuteを使用して呼び出すことができます。 速記:

    set serveroutput on
    execute my_proc(&veno);
    

    この例ではまだ置換変数を使用しているため、使用する値に昇格しますが、数値を直接渡すこともできます。

    プロシージャの作成の詳細 およびパラメータ のタイプ 。

    コードをかなり単純化して、繰り返しと再クエリを減らすことができます。ケース式と戻り句を検索します。しかし、それは直接関係ありません。




    1. コードイグナイターアクティブレコードとの結合のように使用する

    2. 一意性を強化するために複数列のインデックスを作成する

    3. 列の整数値に基づいて結果の行を繰り返します

    4. PostgreSQLの外部キー+テーブル継承?