如何有条件的分步删除数据表中的记录

如何有条件的分步删除数据表中的记录,第1张

如何有条件的分步删除数据表中的记录,第2张

如何有条件地一步一步删除数据表中的记录作者:eygle来源:http://blog.eygle.com日期:2005年2月22日

有时候我们需要分配删除数据表中的一些记录,并批量提交,以减少Undo的使用。本文提供了一个简单的存储过程来实现这个逻辑。
您可以根据自己的需要进行适当的调整。此示例仅供参考:

SQL >将表测试创建为select * from dba _ objects表已创建。SQL >创建或替换过程deleteTab 2 /** 3 **用法:运行脚本以创建过程deleteTab 4 **在SQL*PLUS中,键入" exec deleteTab(@#Foo@#,@#ID>=1000000@#,@ # 3000 @ #);"5 **删除表“Foo”中的记录,每3000条记录提交一次。6 * * 7 * */8(varchar 2中的9 p_TableName,-varchar 2中的10 p_Condition中要删除的TableName,- Delete condition,如“id > = 100000”11 varchar 2中的p _ Count删除多少条记录后提交12)13 as 14 pragma autonomous _ transaction;15n _删除数:= 0;16 begin 17 while 1 = 1 loop 18 EXECUTE IMMEDIATE 19 @ # delete from @ # | | p _ TableName | | @ # where @ # | | p _ Condition | | @ #和rownum insert into test select * from DBA _ objects;创建了6374行。SQL> /6374行已创建。SQL> /6374行已创建。SQL >提交;提交完成。SQL> exec deleteTab(@#TEST@#,@#object_id >0@#,@#3000@#)完成!总共删除了19107条记录!PL/SQL过程已成功完成。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 如何有条件的分步删除数据表中的记录

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情