表A表B的PK均有字段ID。现在想做个存储过程:将表B中ID 未在表A中出现过 的记录删除。
其实过程很简单:
第一步,select id form a;
第二步,delete from b where id not in (第一步查询的结果);我现在不知道在PL/SQL中怎么把第一步查询出来的数据填入第二步的括号中。请大家帮我想想,最好能提供代码,谢谢了。
其实过程很简单:
第一步,select id form a;
第二步,delete from b where id not in (第一步查询的结果);我现在不知道在PL/SQL中怎么把第一步查询出来的数据填入第二步的括号中。请大家帮我想想,最好能提供代码,谢谢了。
解决方案 »
- 多行 合并为一行
- oracle11g 修改数据库字符集-UTF8-ZHS16GBK
- 问一个行列转换问题,怎么实现?
- 数据表增量插入数据的问题
- 在ADO.Net中如何实验一个函数同时往两个表中插入数据
- 高分求Oracle SQL语句的语法书籍,最好是电子书,谢谢。我以前用SQL server很熟练,现在用Oracle ,写SQL语句好别扭,郁闷ing
- 分不清并发和并行好长时间了,有人给解答吗?
- 查询问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
- Oracle连接不上???????出错于msvcrt.dll
- 请问在SQL语句中的"或"="or"的语法是什么?(对不起,没分了)
- 请教:如何存储图片,检索图片以完成一个在线购书系统
- 如何取多条的avg把为0的数据去掉
SQL> select * from test_1; ID NAME PART
---------- ---------- ----------
1 a aa
2 b aa
3 b bb
4 c cc
2 A AA
5 d dd6 rows selectedSQL> select * from test_2; ID VAL
---------- ----------
1 abc
2 abc
SQL> delete from test_1 b where not exists (select 1 from test_2 a where b.id=a.id);3 rows deleted
--or
delete b where not exists(select 1 from a where id=b.id)
你的第一种写法
将会删除整张表的记录!