【问题标题】:SQL Trigger not working using concatSQL 触发器无法使用 concat
【发布时间】:2015-10-10 12:41:09
【问题描述】:
CREATE OR REPLACE TRIGGER "MY_TRIGGER2" 
     BEFORE INSERT ON "FILM" 
     FOR EACH ROW 
    BEGIN
            IF :NEW.RATING = 'G'
                    THEN :NEW.REPLACEMENT_COST := :NEW.REPLACEMENT_COST - .10
          AND :NEW.DESCRIPTION := CONCAT(:NEW.DESCRIPTION, 'Recommended for all audiences';
                    END IF;
      IF :NEW.RATING = 'PG'
                    THEN :NEW.REPLACEMENT_COST := :NEW.REPLACEMENT_COST + .20
          AND :NEW.DESCRIPTION := CONCAT(:NEW.DESCRIPTION, 'Parental guidance for young viewers';
                    END IF;
            IF :NEW.RATING = 'PG-13'
                    THEN :NEW.REPLACEMENT_COST := :NEW.REPLACEMENT_COST + .20
          AND :NEW.DESCRIPTION := CONCAT(:NEW.DESCRIPTION, 'Parental guidance for young viewers';
                    END IF;
      IF :NEW.RATING = 'R'
                    THEN :NEW.REPLACEMENT_COST := :NEW.REPLACEMENT_COST + .60
          AND :NEW.DESCRIPTION := CONCAT(:NEW.DESCRIPTION, 'Recommnded for mature audiences';
                    END IF;
      IF :NEW.RATING = 'NC-17'
                    THEN :NEW.REPLACEMENT_COST := :NEW.REPLACEMENT_COST + 1.0
          AND :NEW.DESCRIPTION := CONCAT(:NEW.DESCRIPTION, 'Mature audiences only';
                    END IF; 
    END;
    /

我有这个,但是 concat 部分会抛出错误。 有什么建议吗?

【问题讨论】:

  • 请说明错误是什么。
  • 你没有完成与)的通话

标签: sql oracle11g oracle-sqldeveloper


【解决方案1】:
:NEW.DESCRIPTION := CONCAT(:NEW.DESCRIPTION, 'Mature audiences only';

我在concat 行的末尾(1) 没有看到右括号(或您的任何其他行)。这几乎可以肯定是语法错误。


(1)分号之前,很明显。

【讨论】:

    【解决方案2】:

    这段代码:

            IF :NEW.RATING = 'G'
                    THEN :NEW.REPLACEMENT_COST := :NEW.REPLACEMENT_COST - .10
          AND :NEW.DESCRIPTION := CONCAT(:NEW.DESCRIPTION, 'Recommended for all audiences';
                    END IF;
    

    真是奇怪。除了缺少的括号外,不要使用AND 进行分配。所以:

            IF :NEW.RATING = 'G' THEN
                :NEW.REPLACEMENT_COST := :NEW.REPLACEMENT_COST - .10;
                :NEW.DESCRIPTION := CONCAT(:NEW.DESCRIPTION, 'Recommended for all audiences');
            END IF;
    

    您需要修复其余代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-20
      相关资源
      最近更新 更多