Dit andet forsøg var næsten rigtigt. Du er nødt til at tjekke NULL-værdier med IS NOT NULL. Så brug
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT @EVENT_ID, 'Notes', 'WO#89574' FROM DUAL
WHERE @EVENT_ID IS NOT NULL; -- instead of !=
eller
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 !=
Den første kan ikke fungere:
-- THIS DOES NOT WORK
SELECT IF(@EVENT_ID != null,
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
fordi syntaksen for IF er
Betinget udførelse af udsagn er kun mulig i lagrede rutiner . IF-syntaksen af lagrede rutiner ville tillade noget lignende
IF @EVENT_ID IS NOT NULL THEN
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
END IF
Du er nødt til at skelne mellem de to syntaksversioner.