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

Oracleでパッケージ内にプロシージャを作成する方法

    Oracleでは、最初にパッケージ仕様でプロシージャを宣言してから、パッケージ本体で完全なプロシージャを作成する必要があります。パッケージ仕様で宣言せずにパッケージ本体でのみプロシージャを作成しようとすると、エラーPLS-00302コンポーネントを宣言する必要があり、ORA-06550が無効なPL/SQLブロックになるためです。以下に、Oracleのパッケージ内にプロシージャを作成する方法の例を示します。

    この例では、EMPテーブルの手数料を更新するためのプロシージャupdate_commを作成します。この手順では、手数料率のパラメーターを使用します。

    Oracleの例でパッケージ内にプロシージャを作成する

    パッケージ仕様で手順を宣言する

    CREATE OR REPLACE PACKAGE emp_pkg
    IS
    PROCEDURE update_comm (i_comm IN emp.comm%TYPE);
    END emp_pkg;

    パッケージ本体に完全なプロシージャを作成する

    CREATE OR REPLACE PACKAGE BODY emp_pkg
    IS
    PROCEDURE update_comm (i_comm IN emp.comm%TYPE)
    IS
    BEGIN
    
    UPDATE emp
    SET comm = sal * NVL (i_comm, 0) / 100;
    
    COMMIT;
    END update_comm;
    END emp_pkg;

    これで、この手順を次のように実行できます。

    BEGIN
    /* Updating commission with 5% of salary */
    emp_pkg.update_comm (5);
    END;
    1. Androidルーム:列の名前変更を移行する方法は?

    2. Oracleで改行文字を入力する方法は?

    3. PostgreSQLおよびC#のデータ型

    4. SQL Server ODBCドライバーをアップグレードしましたが、パフォーマンスに悪影響がありました。私に何ができる?