Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 通过存储过程删除两个表中符合条件的记录

有book及book_copy两个表,要根据book_copy表中的某几个字段删除book表中所有与其相等的记录。存储过程如下:CREATE OR REPLACE PROCEDURE PROC_DEL_RECORDS IS
     v_cur_records INTEGER := 0;
BEGIN
     LOOP
         --若表中已无数据,则退出循环
         SELECT COUNT(*) INTO v_cur_records FROM book_copy WHERE ROWNUM = 1;
         IF v_cur_records = 0 THEN
              EXIT;
         END IF;
    
         DELETE FROM book WHERE (ID, NAME) IN (SELECT ID, NAME FROM book_copy WHERE ROWNUM < 1000);
         DELETE FROM book_copy WHERE ROWNUM < 1000;
    
         COMMIT;
      END LOOP;
EXCEPTION
      WHEN OTHERS THEN
          DBMS_OUTPUT.put_line("EXCEPTION OCCURED");
END PROC_DEL_RECORDS;OTL之Oracle开发总结Oracle触发器之before delete相关资讯      Oracle数据库  Oracle入门教程  oracle数据库教程 
  • Oracle数据库全球化  (03月01日)
  • Oracle数据库日期过滤方法性能比较  (02/02/2015 13:20:26)
  • Oracle数据库安装中端口被占用问题  (10/29/2014 07:42:24)
  • 在CentOS 6.6上搭建C++运行环境并  (10/10/2015 19:44:40)
  • Oracle数据库无法使用localhost和  (11/14/2014 16:39:10)
  • 使用SQLT来构建Oracle测试用例  (08/28/2014 06:17:41)
本文评论 查看全部评论 (0)
表情: 姓名: 字数