有个问题:CREATE or replace TRIGGER msg_id_trigger 
BEFORE INSERT
ON SYSTEM.wz_message
FOR EACH ROW
DECLARE
newId varchar2(10);
BEGIN
SELECT '0000'||msg_id_sequence.currtval INTO newId FROM dual;
:NEW.留言编号 := newId;
END;
目的是让“留言编号”自增,序列已经建好,在触发器里让编号变成"00001","00002"的自增形式,但是我像上面的写法,报的是:
警告: 创建的触发器带有编译错误。
请问是什么原因。

解决方案 »

  1.   

    show error先看看到底是什么错误。
      

  2.   

    msg_id_sequence.currtval 
    啥也不说了,改为currval再看看
      

  3.   

    TRIGGER MSG_ID_TRIGGER 出现错误:LINE/COL ERROR
      

  4.   

    有个问题:CREATE or replace TRIGGER msg_id_trigger 
    BEFORE INSERT
    ON SYSTEM.wz_messageFOR EACH ROW
    DECLARE
    newId varchar2(10);
    BEGIN
    SELECT '0000'||msg_id_sequence.currtval INTO newId FROM dual;
    :NEW.留言编号 := newId;
    END;红色部分为错误的地方
      

  5.   

    currtval不对吧,应该是msg_id_sequence.nextval
    如果序列号长度固定,最好写成
    select lpad(to_char(msg_id_sequence.nextval),5,'0') INTO newId FROM dual;