2回目の試行はほぼ正しかった。 ISNOTNULLでNULL値をチェックする必要があります。だから使用
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT @EVENT_ID, 'Notes', 'WO#89574' FROM DUAL
WHERE @EVENT_ID IS NOT NULL; -- instead of !=
または
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT t.* FROM (
SELECT @EVENT_ID, 'Notes', 'WO#89574'
) t
WHERE @EVENT_ID IS NOT NULL; -- instead of !=
最初のものは機能しません:
-- THIS DOES NOT WORK
SELECT IF(@EVENT_ID != null,
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
IF の構文が
ステートメントの条件付き実行は、ストアドルーチン<でのみ可能です。 / a> 。 IF構文 保存されたルーチンの数は次のようなものを許可します
IF @EVENT_ID IS NOT NULL THEN
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
END IF
これらの両方の構文バージョンを区別する必要があります。