有个问题: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"的自增形式,但是我像上面的写法,报的是:
警告: 创建的触发器带有编译错误。
请问是什么原因。
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"的自增形式,但是我像上面的写法,报的是:
警告: 创建的触发器带有编译错误。
请问是什么原因。
啥也不说了,改为currval再看看
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;红色部分为错误的地方
如果序列号长度固定,最好写成
select lpad(to_char(msg_id_sequence.nextval),5,'0') INTO newId FROM dual;