-1

我有以下触发器:

CREATE OR REPLACE TRIGGER test 
  AFTER INSERT OR UPDATE ON table_cust 
  FOR EACH row 
BEGIN
   IF(:NEW.visibility_flag='True') THEN
      --Do something
   END IF;      

   IF(:NEW.visibility_flag is null) THEN
      --do something
   END IF;
END test;

每次我检查 IS NULL 条件时,我的触发器都不会执行。如果删除了空检查,则执行。我究竟做错了什么?

4

1 回答 1

0

我认为那是您删除了“为空”部分,那么您将只有 IF(:NEW.visibility_flag) -> 就其而言,就像上一个 (if (expression = 'True') - 下面的示例你可以看到只有一个 IF 语句会被输入:

CREATE OR REPLACE TRIGGER test 
  AFTER INSERT OR UPDATE ON table_cust 
  FOR EACH row 
BEGIN
   IF(:NEW.visibility_flag='True') THEN
      --Do something
   ELSE IF(NVL(:NEW.visibility_flag, '0') = '0') THEN
      --do something
   END IF;
END test;
于 2013-04-22T11:21:46.803 回答