回到考试中心首页|兰州学生网LOGO
首页  |  外语考试  |  IT认证  |  基础教育  |  甘肃省专升本  |  学历考试  |  硕士学历  |  公务员  |  会计考试  |  职业资格  |  医学医药  |  建筑工程
会员登录
热门文章
·二级建造师模拟试题一套
·公务员面试自我介绍范文
·践行社会主义荣辱观 党课讲稿
·八荣八耻,从我做起!
·临床执业医师考试真题完全版(一)
·学习八荣八耻心得体会(完善版)
·八荣八耻演讲稿
·八荣八耻歌(歌词)
·英文自我介绍
·中学:教师资格认证考试全真模拟试卷和答案
·八荣八耻中学生演讲稿
·小学教师资格考试教育学仿真试题之一
·八荣八耻手抄报内容
·《八荣八耻歌》歌词 伴奏及曲牌
·暑期实践报告
广告推荐
批量删除Oracle数据库的数据(2)
作者: 来源: 责任编辑: 更新日期:2006-3-27 16:17:12 浏览:
批量删除Oracle数据库的数据(2)

      专家意见:几个办法:
  1. 如果删除的数据是大部分,建议使用楼上的方法把要保留的数据放在一个临时表里,truncate table后再放回来
  2. 也可以分段提交,楼上也提到了
  3. 专门使用一个大回滚段
  4. 如果确认将来不需要做恢复,改为非归档模式,删除完改回来再做个备份.
  专家给出的解决方案:
有条件的分步删除数据表中的记录
--创建测试表
create table test as select * from dba_objects;
Table created.
--创建删除表的存储过程
 create or replace procedure deleteTab
--插入语句 
   SQL> insert into test select * from dba_objects;
6374 rows created.
SQL> /
6374 rows created.
SQL> /
6374 rows created.
SQL> commit;

--创建删除的存储过程
create or replace procedure deleteTab
  /**
   ** Usage: run the script to create the proc deleteTab
   **        in SQL*PLUS, type "exec deleteTab(’Foo’,’ID>=1000000’,’3000’);"
   **        to delete the records in the table "Foo", commit per 3000 records.
   **       Condition with default value ’1=1’ and default Commit batch is 10000.
   **/
  (
    p_TableName    in    varchar2,    -- The TableName which you want to delete from
    p_Condition    in    varchar2 default ’1=1’,    -- Delete condition, such as "id>=100000"
    p_Count        in    varchar2 default ’10000’    -- Commit after delete How many records
  )
  as
   pragma autonomous_transaction;
   n_delete number:=0;
  begin
   while 1=1 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;
     commit;
   end loop;
   commit;
   DBMS_OUTPUT.PUT_LINE(’Finished!’); 
   DBMS_OUTPUT.PUT_LINE(’Totally ’||to_char(n_delete)||’ records deleted!’);
  end;
  /
--执行语句
SQL> exec deleteTab(’TEST’,’object_id >0’,’10000’)
你看看执行结果我试验过,效果还可以

打印本文 收藏本文 返回顶部 关闭窗口
   考试中心分类导航
      外语考试 | 英语四六级 | 专四专八 | 职称英语 | 口译笔译 | 商务英语 | 实用英语 | 托福 | 雅思 | GRE | LSAT | PETS | GMAT
      IT认证 | 计算机等级 | 软件程序员 | 微软认证 | 思科认证 | Oracle | Linux | JAVA
      甘肃省专升本 | 专升本动态 | 招生计划 | 考试大纲 | 专升本试题    基础教育 | 中考 | 高考    学历考试 | 成人高考 | 自学考试
      硕士学历 | 考研 | MBA/EMBA | 在职硕士 | 法律硕士 | 会计硕士 | 工程硕士    公务员 | 考试动态 | 考试指导 | 考试真题 | 模拟题 | 技巧心得
      医学医药 | 执业护士 | 执业医师 | 执业药师    会计考试 | 资产评估 | 经济师 | 从业资格 | 会计职称 | 注会 | 注税 | 高级会计 | ACCA/CAT | 精算师
      职业资格 | 保险考试 | 报关员 | 外销员 | 物流师 | 报检员 | 司法考试 | 律师考试 | 商务师 | 人力资源 | 电子商务 | 导游资格 | 证券考试 | 教师资格
      建筑工程 | 岩土师 | 室内设计师 | 质量资格 | 房产估价 | 土地估价 | 建造师 | 造价师 | 建筑师 | 结构师 | 监理师 | 咨询师 | 城市规划 | 安全工程师
设为首页   |    收藏本站   |    网站帮助   |    网站地图   |    意见反馈   |    关于我们   |    广告服务   |    联系办法
陇ICP备05005179 不良信息举报