--分段删除USER_INFO 表 状态是 0和1 的记录DECLARECURSOR MYCURSOR ISSELECT A.ID, A.CERT_ID
FROM USER_INFO A
WHERE A.STATUSIN('0','1');TYPE T_DATA ISTABLEOF MYCURSOR%ROWTYPE;
V_DATA T_DATA;BEGINOPEN MYCURSOR;LOOPFETCH MYCURSOR BULK COLLECT INTO V_DATA LIMIT20000;--20000行提交一次 EXITWHEN V_DATA.COUNT =0;
FORALL I IN V_DATA.FIRST.. V_DATA.LASTDELETEFROM USER_INFO
WHERE ID = V_DATA(I).ID
AND CERT_ID = V_DATA(I).CERT_ID;COMMIT;ENDLOOP;CLOSE MYCURSOR;END;/
分段删除同一个证件号,状态为0和1的重复的记录,只保留其中一条
-- 分段删除同一个证件号,状态为0和1的重复的记录,只保留其中一条DECLARECURSOR MYCURSOR ISSELECT*FROM(SELECTCOUNT(1) CNT,MIN(ID) ID, A.CERT_ID
FROM UNION_LOAN_USER_INFO A
WHERE A.CHANNEL_CODE ='10001'AND A.STATUSIN('0','1')GROUPBY A.CERT_ID)WHERE CNT >1;TYPE T_DATA ISTABLEOF MYCURSOR%ROWTYPE;
V_DATA T_DATA;BEGINOPEN MYCURSOR;LOOPFETCH MYCURSOR BULK COLLECT INTO V_DATA LIMIT20000;--20000行提交一次 EXITWHEN V_DATA.COUNT =0;
FORALL I IN V_DATA.FIRST.. V_DATA.LASTDELETEFROM USER_INFO
WHERE ID = V_DATA(I).ID
AND CERT_ID = V_DATA(I).CERT_ID;COMMIT;ENDLOOP;CLOSE MYCURSOR;END;/
平时我们要删除某个表的数据时-- 删除同一个证件号,状态为0和1的重复的记录,只保留其中一条DECLARE CURSOR MYCURSOR IS SELECT * FROM (SELECT COUNT(1) CNT, MIN(ID) ID, A.CERT_ID FROM UNION_LOAN_USER_INFO A WHERE A.CHANNEL_CODE = '10001' AND