以下のようなカーソルを実行しようとしていますが、さまざまなアプローチに苦労して結果が得られません。どうやら私一人では無理そうで、あなたに手伝ってもらうことにしました。以下のコードは、準備が整ったアプローチではなく、私が達成したいことを示しています。助けてください。
重要なことはわかりませんが、顧客をループで更新する必要があることに注意してください。また、このループで顧客を参照する別のテーブルからいくつかのデータを選択し、3 番目のテーブルに何かを挿入して顧客テーブルを更新する必要があります。
DECLARE
CURSOR MY_CURSOR
IS
SELECT CUSTOMERID FROM CUSTOMERS WHERE ACTIVE = 1 ;
MY_RECORD MY_CURSOR%ROWTYPE;
BEGIN
FOR MY_RECORD IN MY_CURSOR
LOOP
DECLARE TEMPORARY_TABLE TABLE (A DATE, B NUMBER, C VARCHAR)
INSERT INTO @TEMPORARY_TABLE(A,B,C) (SELECT CREATEDDATE, ID, NAME FROM ACCOUNT WHERE CUSTOMER = MY_RECORD.CUSTOMERID)
INSERT INTO SOME_EVENT_TABLE(ID, NAME, DATE, ACCOUNT_ID) VALUE (some_seq.NEXTVAL, @TEMPORARY_TABLE[C], @TEMPORARY_TABLE[A], @TEMPORARY_TABLE[B])
UPDATE CUSTOMERS SET LAST_ACCOUNT_CHECK_NAME=@TEMPORARY_TABLE(C), LAST_INSERTED_EVENT_ID = some_seq.CURRVAL WHERE ID = MY_RECORD.CUSTOMERID
END LOOP;
COMMIT;
END;