आपका दूसरा प्रयास लगभग सही था। आपको IS NOT NULL के साथ NULL मानों की जाँच करनी है। तो उपयोग करें
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
SELECT @EVENT_ID, 'Notes', 'WO#89574' FROM DUAL
WHERE @EVENT_ID IS NOT NULL; -- instead of !=
या
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 !=
पहला काम नहीं कर सकता:
-- THIS DOES NOT WORK
SELECT IF(@EVENT_ID != null,
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
क्योंकि IF का सिंटैक्स है
कथनों का सशर्त निष्पादन केवल संग्रहीत रूटीन<में ही संभव है /ए> . IF सिंटैक्स संग्रहीत दिनचर्या कुछ इस तरह की अनुमति देगा
IF @EVENT_ID IS NOT NULL THEN
INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
END IF
आपको उन दोनों सिंटैक्स संस्करणों में अंतर करना होगा।