CREATE OR REPLACE TRIGGER EMP_TRIGGER BEFORE
           INSERT ON ACTINSTANCEBASIC FOR EACH ROW 
when (new.ACTIVITYINSTANCEID is null)
begin
           select emp_sequence.nextval into: new.ACTIVITYINSTANCEID from dual;
        end;这个触发器哪不对,我编译时报错误。错误:
TRIGGER FINIXWORKFLOW.EMP_TRIGGER 编译错误错误:PLS-00801: 内部错误 [ph2csql_strdef_to_diana:bind]
行:3
文本:when (new.ACTIVITYINSTANCEID is null)错误:PL/SQL: ORA-06544: PL/SQL: 内部错误, 参数: [ph2csql_strdef_to_diana:bind], [], [], [], [], [], [], []
行:5
文本:select emp_sequence.nextval into: new.ACTIVITYINSTANCEID from dual;错误:PL/SQL: SQL Statement ignored
行:5
文本:select emp_sequence.nextval into: new.ACTIVITYINSTANCEID from dual;

解决方案 »

  1.   

    into: new.
    -- 修改成:into :new.
      

  2.   

    -- 给个例子给你:create table musicinstalllog(
    LOGID NUMBER(38) NOT NULL ,  --自增ID
    IMEI VARCHAR2(30), --IMEI
    IMSI VARCHAR2(30), --IMSI
    CID VARCHAR2(20), --产品ID
    PID VARCHAR2(20), --渠道ID
    SID VARCHAR2(40), --SID
    SKEY VARCHAR2(10), --SKEY
    VER VARCHAR2(10), --版本号
    LOGCREATIONDATE TIMESTAMP(6) NOT NULL , --安装时间
    OSTYPE NUMBER(38), --OSTYPE
    PHONETYPE VARCHAR2(20) --机型
    );create sequence musicinstalllog_seq start with 1 increment by 1 nomaxvalue nocycle cache 20;CREATE OR REPLACE TRIGGER musicinstalllog_trig_autoinc
    BEFORE INSERT ON musicinstalllog
    FOR EACH ROW
    BEGIN
      IF (:new.LOGID IS NULL) THEN 
        SELECT musicinstalllog_seq.nextval INTO :new.LOGID FROM DUAL;
      END IF;
    END;
    /
      

  3.   


    create table test (id number, name varchar2(20));
    create sequence seq_test start with 1 increment by 1;create or replace trigger tri_test
    before insert on test
    for each row
    when (new.id is null)
    begin
    select seq_test.nextval into :new.id from dual;
    end;insert into test (name) values ('abc');select * from test;
            ID NAME                          
    ---------- ------------------------------
             1 abc  
    不知道你的錯在哪裡,把你的表的創建語句貼出來看看
      

  4.   

    into: new.
    -- 修改成:into :new.