【问题标题】:Message: ORA-04079: invalid trigger specification in eclipse消息:ORA-04079:eclipse 中的触发规范无效
【发布时间】:2013-07-08 00:16:12
【问题描述】:

下面提到的sql Trigger在oracle sql plus中正确执行

 CREATE OR REPLACE TRIGGER test_trigger 
 BEFORE INSERT ON RESULTS
 REFERENCING NEW AS NEW
 FOR EACH ROW
 BEGIN
 SELECT Pd_seq.nextval INTO :NEW.PT_ID FROM dual;
 END;
 /

但是同样的代码,当通过java实现时,抛出如下错误

代码:

 ResultSet rs1 = stmt.executeQuery("CREATE OR REPLACE TRIGGER test_trigger123 "+
                "BEFORE INSERT ON RESULTS"+
                "REFERENCING NEW AS NEW"+
                "FOR EACH ROW"+
                "BEGIN"+
                "SELECT Pd_seq.nextval INTO :NEW.PT_ID FROM dual;"+
                "END;"+
                "\n/");

Eclipse 中的错误消息:

SQL Exception:
State  : 42000
Message: ORA-04079: invalid trigger specification

Error  : 4079

请提供帮助。是什么导致了错误?

【问题讨论】:

    标签: java sql eclipse oracle oracle10g


    【解决方案1】:

    您需要在每行之后插入一个空格或\n。示例:

    ResultSet rs1 = stmt.executeQuery("CREATE OR REPLACE TRIGGER test_trigger123\n"+
                    "BEFORE INSERT ON RESULTS\n"+
                    "REFERENCING NEW AS NEW\n"+
                    "FOR EACH ROW\n"+
                    "BEGIN\n"+
                    "SELECT Pd_seq.nextval INTO :NEW.PT_ID FROM dual;\n"+
                    "END;\n"+
                    "\n/");
    

    【讨论】:

      【解决方案2】:

      如果你尝试像现在这样执行它,它会是这样的:

      stmt.executeQuery("CREATE OR REPLACE TRIGGER test_trigger123 BEFORE INSERT ON RESULTSREFERENCING NEW AS NEWFOR EACH ROWBEGINSELECT Pd_seq.nextval INTO :NEW.PT_ID FROM dual;END;\n/");
      

      这就是为什么你必须在你的行后面添加空格。

      ResultSet rs1 = stmt.executeQuery("CREATE OR REPLACE TRIGGER test_trigger123 "+
                  "BEFORE INSERT ON RESULTS "+
                  "REFERENCING NEW AS NEW "+
                  "FOR EACH ROW "+
                  "BEGIN "+
                  "SELECT Pd_seq.nextval INTO :NEW.PT_ID FROM dual; "+
                  "END; "+
                  "\n/");
      

      【讨论】:

        猜你喜欢
        • 2016-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-13
        相关资源
        最近更新 更多