SQL言語で使用できるUPDATEステートメントは、SPLプログラムでも使用できます。
SPL言語の式は、SQL UPDATEステートメントで式が許可されている場合はどこでも使用できます。 したがって、SPL変数およびパラメータを使用して、更新動作に値を供給することができる。
CREATE OR REPLACE PROCEDURE emp_comp_update ()
p_empno IN emp.empno % TYPE、
p_salでemp.sal % タイプ、
p_comm I N emp.com m % タイプ
)
IS
開始
UPDATE emp SET sal = p_sal, comm = p_comm WHERE empno = p_empno;
IF SQL % が見つかった
DBMS_OUTPUT.PUT_LINE('Updated Employee # : '| | p_empno);
DBMS_OUTPUT.PUT_LINE('New Salary : '| | p_sal);
DBMS_OUTPUT.PUT_LINE('New Commission : '| p_comm);
ELSE
DBMS_OUTPUT.PUT_LINE('Employee # '| | p_empno | |' は見つかりません);
エンドIF;
エンド;
行が更新された場合、SQL % FOUND条件式はTRUEを返します。 それ以外の場合、式はFALSEを返します。
次の例は、この手順を使用した従業員の更新を示しています。
EXEC emp_comp_update(9503、6540、1200);
更新された従業員# : 9503
新しい給料: 6540
新しい委员会: 1200
SELECT * FROM emp WHERE empno = 9503;
empno | ename | job | mgr | hiredate | sal | comm | deptno
------ ---------- --------------------- -------------------- --------------------------------------------
9503 | ピーターソン | アナリスト | 7902 | 31-MAR-05 00:00:00 | 6540.00 | 1200.00 | 40
(1行)
説明 UPDATEステートメントは、FORALLステートメントに含めることができます。 FORALLステートメントを使用すると、1つのUPDATEステートメントで、1つ以上のコレクションで指定された値から複数の行を更新できます。