如果语句里面的Trigger不工作SQL(Oracle)

时间:2016-06-04 20:06:01

标签: oracle if-statement plsql triggers

我的目标是创建一个触发器,用于检查您尝试输入 NR_RECIBO 的号码是否在Doc_cabecalho表中,且属性为TIPO_DOC = 4 < / p>

CREATE OR REPLACE TRIGGER ValidaRecibo
BEFORE INSERT ON Recibo
FOR EACH ROW
DECLARE val NUMBER;
BEGIN
    SELECT COUNT(*) INTO val 
    FROM Doc_cabecalho 
    WHERE (TIPO_DOC = 4 AND NR_DOCUMENTO = :NEW.NR_RECIBO);

    IF val = 0 
    THEN (-20502, ' Only from department 4 ');
    END IF;
END ValidaRecibo;

然而,这引发了以下错误:

  

PLS-00103:遇到以下其中一项时遇到符号“,”:
  *&amp; = - +&lt; /&gt; at in mod mod not rem&lt;&gt;或!=或〜=&gt; =&lt; =&lt;&gt;和/或喜欢喜欢喜欢的喜欢...之间的||成员submultiset

1 个答案:

答案 0 :(得分:1)

IF val = 0那么   raise_application_error(-20502,'仅来自部门6');

你应该在DOC_TIPO和TIPO_DOC之间做出决定;)