有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)