La question n'a rien à voir avec les déclencheurs. Vous avez simplement une erreur de syntaxe à la ligne suivante :
IF :NEW.EVENT_ID AND :NEW.DESCRIPTION IS NOT NULL THEN
if
déclaration
et les opérateurs logiques attendent une expression booléenne. PL/SQL n'a pas de conversions de type de données implicites en valeurs booléennes.
Cela signifie :NEW.EVENT_ID
n'est pas une expression booléenne valide, elle ne peut donc pas être utilisée avec and
-operator et donc la compilation échoue avec :
PLS-00382: expression is of wrong type
Essentiellement, votre problème peut être réduit à l'exemple suivant :
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;
/
Exemples de travail (compilation correcte) :
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;
/