PL/SQLでカーソルを使用してテーブルにデータを挿入する方法は、次のように行うことができます。以下は、カーソルを使って他のテーブルからデータを取得し、あるテーブルに挿入する例です。
- テーブルの作成: まず、データを挿入するテーブルとデータを取得するテーブルを作成します。
CREATE TABLE source_table (
id NUMBER,
name VARCHAR2(50)
);
CREATE TABLE target_table (
id NUMBER,
name VARCHAR2(50)
);- サンプルデータの挿入:
source_tableにサンプルデータを挿入します。
INSERT INTO source_table (id, name) VALUES (1, 'Alice');
INSERT INTO source_table (id, name) VALUES (2, 'Bob');
INSERT INTO source_table (id, name) VALUES (3, 'Charlie');
COMMIT;- PL/SQLブロックの作成: カーソルを使用して
source_tableからデータを取得し、target_tableに挿入するPL/SQLブロックを作成します。
DECLARE
CURSOR source_cursor IS
SELECT id, name FROM source_table; -- データを取得するカーソル
BEGIN
FOR record IN source_cursor LOOP
INSERT INTO target_table (id, name) -- target_table にデータを挿入
VALUES (record.id, record.name);
END LOOP;
COMMIT; -- トランザクションをコミット
END;
/- DECLARE: 変数やカーソルを定義するセクションです。
- CURSOR:
source_cursorというカーソルを定義し、source_tableからidとnameを取得します。 - FOR LOOP: カーソルをループして、各レコードを取得します。
- INSERT INTO: ループ内で、取得したデータを
target_tableに挿入します。 - COMMIT: データベーストランザクションをコミットします。
この方法で、カーソルを使用してテーブルにデータを挿入することができます。必要に応じて、条件を追加したり、エラーハンドリングを行ったりすることも可能です。