Lần thử thứ hai của bạn đã gần đúng. Bạn phải kiểm tra các giá trị NULL với IS NOT NULL. Vì vậy, hãy sử dụng
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT @EVENT_ID, 'Notes', 'WO#89574' FROM DUAL
WHERE @EVENT_ID IS NOT NULL; -- instead of !=
hoặc
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 !=
Cái đầu tiên không thể hoạt động:
-- THIS DOES NOT WORK
SELECT IF(@EVENT_ID != null,
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
vì cú pháp của IF là
Chỉ có thể thực thi có điều kiện các câu lệnh trong các quy trình được lưu trữ . Cú pháp IF quy trình được lưu trữ sẽ cho phép một cái gì đó như
IF @EVENT_ID IS NOT NULL THEN
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
END IF
Bạn phải phân biệt cả hai phiên bản cú pháp đó.