私は2つのテーブルを持っています。それらをTable1とTable2と呼んでいます。 私がという名前の変数があります。role
リストまたはデータセットと同様の作業
は、今私は(複数の行を返すことができます)Table1
からselect文を実行する必要があります。
SELECT roles INTO role FROM TABLE1
そして、私は表2
でrole
を挿入する必要が
INSERT INTO Table2(RELATION_ID, ROLES) VALUES (maxID+1, role);
今私の問題は、最初のselectステートメントは2行以上を返すので、role
変数に値を入れることができません。だから、これらの値をループして別のテーブルに挿入する必要があるので、値を入れるにはArrayListやDataSetのようなものが必要です。リストを使用してそれをSQL(Oracle)で繰り返すにはどうすればいいですか?
私のコードは、以下のように表示されます。もちろん、コードはコンパイルされず、必要なものを明確にしようとします。ありがとう。
CREATE OR REPLACE PROCEDURE "myProcedure"(eventID IN NUMBER)
IS
roleNumber NUMBER;
maxID NUMBER;
BEGIN
SELECT roles FROM TABLE1;
SELECT MAX(RELATION_ID) INTO maxID FROM SOMEOTHERTABLE;
IF maxID IS NULL
THEN
maxID := 0;
END IF;
FOR counter IN theListThatINeed
INSERT INTO Table2(RELATION_ID, ROLES) VALUES (maxID+1, roleAtCounter);
END IF;
END "myProcedure"
あなたRELATION_IDをインクリメントautoにシーケンスとトリガーを使用している場合、解決策は –