孤灯野火
畅想的天空
posts - 2,comments - 4,trackbacks - 0
CREATE OR REPLACE PROCEDURE p_del_table
--功能:循环删除表数据,避免使用大量回滚段
--设计:
--编码:
--日期:2006年06月07日
(
iTabName       VARCHAR2        --输入要删除的表名
)
AS
vSql          VARCHAR2(2000); --动态SQL
vTabName      VARCHAR2(100);
BEGIN
--vTabName:=TRIM(iTabName);
vTabName:='vtestjhtm';
LOOP
--循环删除数据,每次删除1000条然后commit
vSql:='DELETE FROM '||vTabName||' WHERE ROWNUM<1000';
--执行动态SQL
EXECUTE IMMEDIATE vSql;
COMMIT;
--删除的表数据为空时,退出
EXIT WHEN SQL%ROWCOUNT=0;
END LOOP;
--提示删除成功
dbms_output.put_line('DELETE TABLE '||vTabName||' Successfully!');
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
--提示删除失败,并提示错误信息
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 孤飞燕 阅读(1028) 评论(0)  编辑  收藏 所属分类: 数据库

只有注册用户登录后才能发表评论。


网站导航: