Tu segundo intento fue casi correcto. Tienes que verificar los valores NULL con IS NOT NULL. Así que usa
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT @EVENT_ID, 'Notes', 'WO#89574' FROM DUAL
WHERE @EVENT_ID IS NOT NULL; -- instead of !=
o
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 !=
El primero no puede funcionar:
-- THIS DOES NOT WORK
SELECT IF(@EVENT_ID != null,
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
porque la sintaxis de IF es
La ejecución condicional de declaraciones solo es posible en rutinas almacenadas . La sintaxis IF de rutinas almacenadas permitiría algo como
IF @EVENT_ID IS NOT NULL THEN
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
END IF
Tienes que distinguir ambas versiones de sintaxis.