Oracle數據庫批量刪除數據經驗
由于大批量刪除數據,必須考慮其刪除數據需要的資源最少,因此可按照如下的方式刪除。
DECLARE
ln_count NUMBER(10);
ln_rownum NUMBER(10);
BEGIN
LOOP
FOR cur IN (SELECT t.rowid
FROM os_mail_fs_send_detail t
WHERE mail_title = '郵箱攻略'
AND provcode = 16
AND rownum <= 10000) LOOP
ln_count := ln_count + 1;
DELETE os_mail_fs_send_detail WHERE ROWID = cur.rowid;
IF ln_count > 10000 THEN
ln_count := 1;
COMMIT;
END IF;
END LOOP;
SELECT COUNT(1)
INTO ln_rownum
FROM os_mail_fs_send_detail t
WHERE mail_title = '郵箱攻略'
AND provcode = 16
AND rownum <= 1;
IF ln_rownum <= 0 THEN
EXIT;
END IF;
END LOOP;
END;