CLP スクリプトからの PL/SQL プロシージャーおよび関数の作成
コマンド行プロセッサー (CLP) スクリプトから PL/SQL プロシージャーおよび関数を作成できます。
手順
タスクの結果
例
以下の CLP スクリプトの例では、PL/SQL 関数およびプロシージャーを作成してから、PL/SQL プロシージャーを呼び出します。
CONNECT TO mydb
/
CREATE TABLE emp (
name VARCHAR2(10),
salary NUMBER,
comm NUMBER,
tot_comp NUMBER
)
/
INSERT INTO emp VALUES ('Larry', 1000, 50, 0)
/
INSERT INTO emp VALUES ('Curly', 200, 5, 0)
/
INSERT INTO emp VALUES ('Moe', 10000, 1000, 0)
/
CREATE OR REPLACE FUNCTION emp_comp (
p_sal NUMBER,
p_comm NUMBER )
RETURN NUMBER
IS
BEGIN
RETURN (p_sal + NVL(p_comm, 0)) * 24;
END emp_comp
/
CREATE OR REPLACE PROCEDURE update_comp(p_name IN VARCHAR) AS
BEGIN
UPDATE emp SET tot_comp = emp_comp(salary, comm)
WHERE name = p_name;
END update_comp
/
CALL update_comp('Curly')
/
SELECT * FROM emp
/
CONNECT RESET
/
このスクリプトによって生成される出力例を以下に示します。
CALL update_comp('Curly')
Return Status = 0
SELECT * FROM emp
NAME SALARY COMM TOT_COMP
---------- ------...--------- ----...----------- --------...-------
Larry 1000 50 0
Curly 200 5 4920
Moe 10000 1000 0
3 record(s) selected.
次のタスク
新しいプロシージャーまたは関数を呼び出してテストします。 プロシージャーの場合は、CALL ステートメントを使用します。 関数の場合は、これらの関数への参照を含む照会またはその他の SQL ステートメントを実行します。