CREATE OR REPLACE TRIGGER "ZYJ"."TG_FORDEPID" BEFORE
INSERT ON "DEP" FOR EACH ROW WHEN (new.id is null) begin
select ZYJ.EMP_SEQUENCE.nextval into: new.id from dual;
end;触发器如上。ZYJ 方案。
错误信息如下:
行号= 0 列号= 0 错误文本= PLS-00801: 内部错误 [ph2csql_strdef_to_diana:bind]
行号= 2 列号= 51 错误文本= PL/SQL: ORA-06544: PL/SQL: 内部错误,参数: [ph2csql_strdef_to_diana:bind], [], [], [], [], [], [], []
行号= 2 列号= 1 错误文本= PL/SQL: SQL Statement ignored

解决方案 »

  1.   

    不是"into: new.id ", 
    而是"into :new.id " 
    在sqlplus或pl/sql中先编译一下,通过了再在程序中引用。 
      

  2.   

    是这写错了.
    select ZYJ.EMP_SEQUENCE.nextval into: new.id from dual; 
    改成
    select ZYJ.EMP_SEQUENCE.nextval into :new.id from dual;
    就好了
    完整的
    CREATE OR REPLACE TRIGGER "ZYJ"."TG_FORDEPID"
      BEFORE INSERT ON "DEP"
      FOR EACH ROW
      WHEN (new.id is null)
    begin
      select ZYJ.EMP_SEQUENCE.nextval into :new.id from dual;
    end;
      

  3.   

    建议csdn该一下字体,在回复框里看到的字体就很好,发表了就……,样式全变了,看那个符号,跟找针似的。