Create sequence register_Id_sequence
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE;CREATE or replace TRIGGER register_Id_trigger
BEFORE INSERT
ON SYSTEM.A_REGISTER
FOR EACH ROW
DECLARE
newId NUMBER(18,0);
BEGIN
SELECT register_Id_sequence.currtval INTO newId FROM dual;
:NEW.人员内码 := newId;
END;上面的序列每次都增加1,
但是现在我想让触发器把他变成00001怎么办啊?
请大家帮忙解决一下。
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE;CREATE or replace TRIGGER register_Id_trigger
BEFORE INSERT
ON SYSTEM.A_REGISTER
FOR EACH ROW
DECLARE
newId NUMBER(18,0);
BEGIN
SELECT register_Id_sequence.currtval INTO newId FROM dual;
:NEW.人员内码 := newId;
END;上面的序列每次都增加1,
但是现在我想让触发器把他变成00001怎么办啊?
请大家帮忙解决一下。
解决方案 »
- 急!!!安装oracle问题!郁闷!在线等!
- 请教ORACLE9i在window server2003下的稳定性
- 如何使用dmp文件?
- oracle怎样强制执行某个索引
- Oracle 中将一个表中的多条数据合并为一条数据
- oracle 10g控制文件迁移问题,请高手帮忙一下,谢谢!!
- 一个和EXP有关的怪问题!都来看看!
- 写一个to_date小于日期条件的选择语句 报错,请帮助
- 关于form 6i问题,请各位developer 2000高手相助
- Oracle 起不来了,要被炒鱿鱼了!
- 如何将下面二个SQL合并?
- PLW-07203: 使用 NOCOPY 编译器提示可能对参数 'NAME' 有所帮助
-----
00001SELECT lpad(register_Id_sequence.currtval,5,'0') INTO newId FROM dual;
另外你存该编号的字段,不能为number,否则ORACLE自动省去前面的0
改成:
SELECT ‘0000‘||register_Id_sequence.currtval INTO newId FROM dual;