Oracle 一括更新:複数データ更新の効率的な方法
Oracleで複数のデータを一括更新する方法は、次のいずれかを使用できます:
- MERGEステートメントを使用すると、挿入、更新、削除などの操作が可能であり、複数の更新ステートメントを1つのMERGEステートメントに統合して、複数のデータを一括更新することができます。以下はサンプルコードです。
MERGE INTO table_name dest
USING (SELECT id, new_value FROM updated_data) src
ON (dest.id = src.id)
WHEN MATCHED THEN UPDATE SET dest.column_name = src.new_value;
- PL/SQLのループを使用する:データを1行ずつ更新するPL/SQLのループを書き、その後、FORALL文を使用して複数回の更新操作を一括で実行することができます。以下に例示コードを示します:
DECLARE
TYPE id_table IS TABLE OF table_name.id%TYPE INDEX BY PLS_INTEGER;
TYPE value_table IS TABLE OF table_name.column_name%TYPE INDEX BY PLS_INTEGER;
ids id_table;
values value_table;
BEGIN
-- 填充ids和values数组
FOR i IN 1..ids.COUNT LOOP
UPDATE table_name
SET column_name = values(i)
WHERE id = ids(i);
END LOOP;
END;
Oracleデータベースで複数のデータを一括更新するためには、上記の2つの方法を使用できます。