知识大全 分别删除数据表记录的方法

Posted

篇首语:其实最美好的日子就是,我对你闹,你对我笑。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 分别删除数据表记录的方法相关的知识,希望对你有一定的参考价值。

  很多情况下我们需要分别删除数据表的一些记录 分批来提交以此来减少对于Undo的使用 下面我们提供一个简单的存储过程来实现此逻辑

  

  

  SQL> create table test as select * from dba_objects;

  

  Table created

  

  SQL> create or replace procedure deleteTab

   /**

   ** Usage: run the script to create the proc deleteTab

   ** in SQL*PLUS type exec deleteTab( Foo ID>= );

   ** to delete the records in the table Foo mit per records

   ** Condition with default value = and default Commit batch is

   **/

   (

   p_TableName in varchar The TableName which you want to delete from

   p_Condition in varchar default = Delete condition such as id>=

   p_Count in varchar default Commit after delete How many records

   )

   as

   pragma autonomous_transaction;

   n_delete number:= ;

   begin

   while = loop

   EXECUTE IMMEDIATE

   delete from ||p_TableName|| where ||p_Condition|| and rownum <= :rn

   USING p_Count;

   if SQL%NOTFOUND then

   exit;

   else

   n_delete:=n_delete + SQL%ROWCOUNT;

   end if;

   mit;

   end loop;

   mit;

   DBMS_OUTPUT PUT_LINE( Finished! );

   DBMS_OUTPUT PUT_LINE( Totally ||to_char(n_delete)|| records deleted! );

   end;

   /

  

  Procedure created

  

  

  SQL> insert into test select * from dba_objects;

  

   rows created

  

  SQL> /

  

   rows created

  

  SQL> /

  

   rows created

  

  SQL> mit;

  

  Commit plete

  

  SQL> exec deleteTab( TEST object_id > )

  Finished!

  Totally records deleted!

  

  PL/SQL procedure successfully pleted

  

  

  

  注释 在此实例中修正了一下 增加了 个缺省值 以下是具体过程:

  

  

  create or replace procedure deleteTab

  (

  p_TableName in varchar

   The TableName which you want to delete from

  p_Condition in varchar default =

   Delete condition such as id>=

  p_Count in varchar default

   Commit after delete How many records

  )

  as

  pragma autonomous_transaction;

  n_delete number:= ;

  begin

  while = loop

  EXECUTE IMMEDIATE

   delete from ||p_TableName||

  where ||p_Condition|| and rownum <= :rn

  USING p_Count;

  if SQL%NOTFOUND then

  exit;

  else

  n_delete:=n_delete + SQL%ROWCOUNT;

  end if;

  mit;

  end loop;

  mit;

  DBMS_OUTPUT PUT_LINE( Finished! );

  DBMS_OUTPUT PUT_LINE( Totally ||to_char(n_delete)|| records deleted! );

  

  

  

cha138/Article/program/Oracle/201311/18562

相关参考

知识大全 Oracle数据库删除重复记录的方法

Oracle数据库删除重复记录的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  做项目的时候

知识大全 asp 删除数据库记录入门教程

cha138/Article/program/net/201311/14242

知识大全 用Visual C#来修改和删除数据库记录

用VisualC#来修改和删除数据库记录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在前面的一

知识大全 Oracle数据库删除表中重复记录的常见方法

Oracle数据库删除表中重复记录的常见方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  方法

知识大全 asp 删除指定记录程序代码

  这是一款asp教程删除指定记录程序代码哦实例由点击连接到删除页面并且执行删除  <%数据库教程连接subopendb()setrs=serverCreateObject("adodbreco

知识大全 苹果手机聊天记录删除了怎么恢复

苹果手机聊天记录删除了怎么恢复苹果手机恢复微信聊天记录可以使用下面这个方法,按照步骤操作就可以了:1:下载安装iTunes,用iTunes备份手机数据。2:打开强力苹果恢复精灵,选择“从iTunes备

知识大全 如何彻底删除苹果手机微信聊天记录

如何彻底删除苹果手机微信聊天记录打开微信——设置——通用——储存空间——管理微信聊天数据——选择你想删除的即可按照上面的步骤操作即可..1.打开迅捷微信聊天记录恢复器,点击软件界面上的“打开目录”,在

知识大全 删除完全重复和部分关键字段重复的记录

  重复记录分为两种第一种是完全重复的记录也就是所有字段均重复的记录第二种是部分关键字段重复的记录例如Name字段重复而其它字段不一定重复或都重复  第一种重复很容易解决不同数据库环境下方法相似  M

个人征信由中国人民银行征信中心统一管理,非数据报送机构都无权删除和修改。凡是自称金融平台、网贷平台客服,提供注销不良网贷征信记录和账户的都是诈骗。()

个人征信由中国人民银行征信中心统一管理,非数据报送机构都无权删除和修改。凡是自称金融平台、网贷平台客服,提供注销不良网贷征信记录和账户的都是诈骗。()A、正确B、错误正确答案:A

个人征信由中国人民银行征信中心统一管理,非数据报送机构都无权删除和修改。凡是自称金融平台、网贷平台客服,提供注销不良网贷征信记录和账户的都是诈骗。()

个人征信由中国人民银行征信中心统一管理,非数据报送机构都无权删除和修改。凡是自称金融平台、网贷平台客服,提供注销不良网贷征信记录和账户的都是诈骗。()A、正确B、错误正确答案:A