Percobaan kedua Anda hampir benar. Anda harus memeriksa nilai NULL dengan IS NOT NULL. Jadi gunakan
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT @EVENT_ID, 'Notes', 'WO#89574' FROM DUAL
WHERE @EVENT_ID IS NOT NULL; -- instead of !=
atau
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 !=
Yang pertama tidak bisa bekerja:
-- THIS DOES NOT WORK
SELECT IF(@EVENT_ID != null,
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
karena sintaks JIKA adalah
Eksekusi pernyataan bersyarat hanya dimungkinkan di rutinitas tersimpan . Sintaks JIKA dari rutinitas yang tersimpan akan memungkinkan sesuatu seperti
IF @EVENT_ID IS NOT NULL THEN
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
END IF
Anda harus membedakan kedua versi sintaks tersebut.