-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 条件をチェックするたびに、トリガーが実行されません。null チェックが削除されると、実行されます。私は何を間違っていますか?

4

1 に答える 1

0

「is null」部分を削除すると、 IF(:NEW.visibility_flag) のみが表示されると思います->これは、上のものと似ています (if (expression = 'True') - 以下の例でIF ステートメントの 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
   ELSE IF(NVL(:NEW.visibility_flag, '0') = '0') THEN
      --do something
   END IF;
END test;
于 2013-04-22T11:21:46.803 に答える