प्रश्न का ट्रिगर्स से कोई लेना-देना नहीं है। आपको निम्न पंक्ति में बस एक सिंटैक्स त्रुटि है:
IF :NEW.EVENT_ID AND :NEW.DESCRIPTION IS NOT NULL THEN
if
कथन
और तार्किक संचालक एक बूलियन व्यंजक की अपेक्षा करते हैं। पीएल/एसक्यूएल में बूलियन मानों में निहित डेटा प्रकार रूपांतरण नहीं होते हैं।
इसका अर्थ है :NEW.EVENT_ID
मान्य बूलियन व्यंजक नहीं है इसलिए इसका उपयोग and
. के साथ नहीं किया जा सकता है -ऑपरेटर और इसलिए संकलन विफल रहता है:
PLS-00382: expression is of wrong type
अनिवार्य रूप से आपकी समस्या को निम्न उदाहरण तक सीमित किया जा सकता है:
declare
v_foo number;
begin
-- compilation fails because a number (or any other non-boolean
-- data type) is not a boolean expression.
if v_foo
then
null;
end if;
end;
/
कार्य उदाहरण (ठीक संकलित):
declare
v_foo number;
function to_boolean(p_x in number) return boolean is
begin
return p_x > 0;
end;
begin
-- a function returns a boolean value
if to_boolean(v_foo)
then
null;
end if;
-- a > operator returns a boolean value
if v_foo > 0
then
null;
end if;
-- is null operator returns a boolean value
if v_foo is null
then
null;
end if;
end;
/