0
カーソルを使用して1つのテーブルのレコードをループし、別のテーブルに挿入ステートメントを開始するプロシージャがあります。<>または!= insideステートメントのみを使用できます
私は、If文でNOT IN
が機能しないこと!= 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
を使用しても値は挿入されません。手動でトラブルシューティングを行うと、または!= Any
がselect文から挿入する必要がある正しい値を返しますが、ステートメント内でNOT INを使用すると、正しい値が挿入されません。その行をコメントアウトしてプロシージャを実行すると、ほとんどの正しい値が返されます。その場合は
And
NOT (Status_G = 'KNOWN' OR Status_G = 'NEW'
OR Status_G = 'UNKNOWN' OR Status_G = 'SOLD')
:また、これを行うことができます
And
(Status_G <> 'KNOWN' AND Status_G <> 'NEW'
AND Status_G <> 'UNKNOWN' AND Status_G <> 'SOLD')
:最初の明示的なアプローチを使用して
Not In ('KNOWN', 'NEW', 'UNKNOWN', 'SOLD')
--Does not work
あなたが使用している '!= ALL'構文は見たことがありません。 'Status_G!= 'KNOWN' AND Status_G!= 'NEW''など、' and'ステートメントを展開するとどうなりますか?適切な「END IF」をやっていますか?あなたの 'INSERT'ステートメントはプロシージャの外で動作しますか? – Marc
それは同じですasa <> – user1307149
それはどういう意味ですか?あなたはそれのドキュメントに私を指摘できますか? – Marc