PL/SQLでデータを変更の方法
PL/SQLでは、次の手法でデータを変更できます。
- UPDATE文によるデータ更新:UPDATE文では、テーブル内のデータを更新することができます。構文は次のとおりです。
UPDATE 表名
SET 列名1 = 值1, 列名2 = 值2, ...
WHERE 条件;
更新するテーブル名は表名、列名は更新する列名、値は新しい値で、条件は更新するレコードを指定するための条件です。
- マージステートメントを使用する:マージステートメントは、条件に基づいて挿入または更新操作を実行できます。構文は次のとおりです。
MERGE INTO 目标表
USING 源表
ON (条件)
WHEN MATCHED THEN
UPDATE SET 列名1 = 值1, 列名2 = 值2, ...
WHEN NOT MATCHED THEN
INSERT (列名1, 列名2, ...)
VALUES (值1, 值2, ...);
更新対象テーブルのテーブル、更新データを含むテーブル、更新するレコードを指定する条件、更新する列とその値を指定する UPDATE SET 句、挿入する列とその値を指定する INSERT 句。
- カーソルとFOR UPDATE文を使用する:カーソルとFOR UPDATE文を使用することで、PL/SQLでカーソルを使用してデータを更新することができます。まず、カーソルを宣言し、つぎに、FOR UPDATE句を使用して更新するレコードをロックし、そのあとでUPDATE文を使用してレコードを更新します。サンプルコードは次のとおりです。
DECLARE
CURSOR cursor_name IS
SELECT 列名1, 列名2, ...
FROM 表名
WHERE 条件
FOR UPDATE;
BEGIN
FOR record_name IN cursor_name LOOP
record_name.列名1 := 新值1;
record_name.列名2 := 新值2;
...
UPDATE 表名
SET 列名1 = record_name.列名1, 列名2 = record_name.列名2, ...
WHERE CURRENT OF cursor_name;
END LOOP;
END;
カーソル名・項目名・条件・カーソル循環変数は、それぞれカーソルの名前、更新する列の名前、更新するレコードの条件、カーソルを循環させる変数を指定します。
それぞれのニーズに合うようにこれらの方法を選択して使用できます。