CREATE OR REPLACE PROCEDURE MOVE_TB_SMS AS
BEGIN
DECLARE
CURSOR C1 IS
SELECT ROWID ROW_ID FROM TB_SMS WHERE CADDDATE < trunc(sysdate - 10); --找出你需要操作的表的rowid
C_COMMIT CONSTANT PLS_INTEGER := 30000; --代表提交的行数
BEGIN
FOR C1REC IN C1 LOOP
INSERT INTO tb_sms_history
(ICONTENTTYPE,
CSERVICE)
SELECT ICONTENTTYPE,
CSERVICE
FROM TB_SMS
WHERE ROWID = C1REC.ROW_ID; --主要记录rowid两边保持一致,此处以insert为例
--DELETE FROM TB_SMS WHERE ROWID = C1REC.ROW_ID;
IF (MOD(C1%ROWCOUNT, C_COMMIT) = 0) THEN
COMMIT;
DBMS_LOCK.SLEEP(60); --这个权限可能需要单独授权,请注意
END IF;
END LOOP;
COMMIT;
END;
END;
/
oracle批量操作模板
猜你喜欢
转载自blog.csdn.net/u012556249/article/details/107513729
今日推荐
周排行