我正在尝试做一个类似下面的游标,在不同的方法中苦苦挣扎,但没有结果。看来,我一个人也做不了,决定请你帮忙。下面的代码显示了我想要实现的目标,而不是现成的方法。请帮忙。
我不知道这很重要,但请注意,我需要循环更新 CUSTOMERS。我还需要在这个循环中从另一个引用客户的表中选择一些数据,然后在第三个表中插入一些数据并更新客户表。
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;