CREATE OR REPLACE PROCEDURE p_del_table
--功能:循環(huán)刪除表數(shù)據(jù),避免使用大量回滾段
--設(shè)計(jì):
--編碼:
--日期:2006年06月07日
(
iTabName VARCHAR2 --輸入要?jiǎng)h除的表名
)
AS
vSql VARCHAR2(2000); --動(dòng)態(tài)SQL
vTabName VARCHAR2(100);
BEGIN
--vTabName:=TRIM(iTabName);
vTabName:='vtestjhtm';
LOOP
--循環(huán)刪除數(shù)據(jù),每次刪除1000條然后commit
vSql:='DELETE FROM '||vTabName||' WHERE ROWNUM<1000';
--執(zhí)行動(dòng)態(tài)SQL
EXECUTE IMMEDIATE vSql;
COMMIT;
--刪除的表數(shù)據(jù)為空時(shí),退出
EXIT WHEN SQL%ROWCOUNT=0;
END LOOP;
--提示刪除成功
dbms_output.put_line('DELETE TABLE '||vTabName||' Successfully!');
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
--提示刪除失敗,并提示錯(cuò)誤信息
dbms_output.put_line('DELETE TABLE '||vTabName||' Fail!');
dbms_output.put_line('Error Message is: '||substr(SQLERRM,1,200));
END;
posted on 2011-06-30 19:17
孤飛燕 閱讀(1034)
評(píng)論(0) 編輯 收藏 所屬分類:
數(shù)據(jù)庫(kù)