我有一个过程,用一个游标循环一个表中的记录,然后在另一个表中启动一个insert语句。
我在If语句!= ALL
Begin
If V_Item = V_Item_G
And V_New_Part Is Null
And (V_Delete_G Is Null or V_Delete_G != 'Y')
And Status_G != ALL ('KNOWN', 'NEW', 'UNKNOWN', 'SOLD')
THEN INSERT INTO PART
VALUES ( V_Item, V_New_Part);
End IF;
End;
请注意,NOT IN
不起作用。
使用not in
不会插入任何值。当我手动排除故障时,!= ALL
或!= Any
返回我需要从select语句插入的正确值,但是当我在语句中使用NOT IN时,它不会插入正确的值。如果我注释掉该行并执行该过程,则返回大部分正确的值。
Not In ('KNOWN', 'NEW', 'UNKNOWN', 'SOLD')
--Does not work
答案 0 :(得分:0)
这样做......
And Status_G != ALL ('KNOWN', 'NEW', 'UNKNOWN', 'SOLD')
......首先使用显式方法:
And
(Status_G <> 'KNOWN' AND Status_G <> 'NEW'
AND Status_G <> 'UNKNOWN' AND Status_G <> 'SOLD')
你也可以这样做:
And
NOT (Status_G = 'KNOWN' OR Status_G = 'NEW'
OR Status_G = 'UNKNOWN' OR Status_G = 'SOLD')
如果仍然(非常明确的条件)没有插入正确的值,则代码中的错误不在该行上。查看您的IF语句的其他条件,或者您的数据
或PERHAPS
变量Status_G有拼写错误?请调试打印Status_G的值