1. 程式人生 > 其它 >Oracle資料庫批量刪除資料經驗

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;

來源:http://www.cnblogs.com/blogyuan,歡迎轉載