oracle 存储过程异常
我举个一下例子,请各位帮帮忙,执行的是个存储过程create table a(id number ,customer_name varchar2);
create table b(id number ,customer_name varchar2);
select a.id as id from a
minus
select b.id as id from b
结果集 假如 为3个不同的值吧 ,id 分别为 12 , 13,14
然后有个表是 create table c (id number,a_id number);
我执行,delete from c where c.a_id = 上面两个表minus的结果集,因为这都是在存储过程中执行的,偏偏就删除了2条数据,
而不是3条数据,我想请大家说一下这是什么情况造成的 1、"delete from c where c.a_id = 上面两个表minus的结果集",这里使用"="合理吗?应该是"in"吧。
2、看看c表里数据, 12 , 13,14都包含吗?如果只包含其中2个各1条,或着其中1个存在2条,当然只能删除2条数据。
因为那个是for c in()loop,是个循环执行的,所以肯定是''='',还有的确是三条数据都有,只不过我的存储过程执行的是5000多条里面,大概有200个要删除的,是不是数据太多,有的数据遗漏了
页:
[1]