Twoja druga próba była prawie właściwa. Musisz sprawdzić wartości NULL za pomocą IS NOT NULL. Więc użyj
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT @EVENT_ID, 'Notes', 'WO#89574' FROM DUAL
WHERE @EVENT_ID IS NOT NULL; -- instead of !=
lub
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 !=
Pierwsza z nich nie działa:
-- THIS DOES NOT WORK
SELECT IF(@EVENT_ID != null,
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
ponieważ składnia IF jest
Warunkowe wykonanie instrukcji jest możliwe tylko w procedury przechowywane . składnia IF przechowywanych procedur pozwoliłoby na coś takiego jak
IF @EVENT_ID IS NOT NULL THEN
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
END IF
Musisz rozróżnić te obie wersje składni.