我需要创建一个具有特定值的oracle序列
FOUR0001,FOUR0002,FOUR0003 .....
增量必须按顺序。
答案 0 :(得分:2)
首先创建一个简单的序列
create sequence my_seq ; --start with 1 increment by 1
在您的应用程序代码/表(使用序列存储数据)中,使用类似这样的
INSERT INTO yourtab (col1) VALUES( 'FOUR'||lpad(my_seq.nextval,4,'0'));
答案 1 :(得分:0)
您可以创建一个序列:
create sequence SEQ_NAME ...;
,然后创建触发器以自动填充该字段:
CREATE OR REPLACE TRIGGER INS_TABLENAME
before insert on TABLENAME
for each row
BEGIN
if :new.FIELD_NAME is null then
:new.FIELD_NAME := 'FOUR'||lpad(SEQ_NAME.nextval,4,'0');
end if;
END;
答案 2 :(得分:0)
我创建了一个以210开头的序列(因为我已经拥有209条记录),然后创建了触发器波纹管
CREATE OR REPLACE trigger BIU_FRS
before insert or update on FOURNISSEUR
for each row
begin
if :NEW.FRS_NUM is null then
select ('FOUR'||lpad(four_seq.nextval,4,'0')) into :NEW.FRS_NUM from dual;
end if;
if inserting then
:new.created := localtimestamp;
:new.created_by := nvl(wwv_flow.g_user,user);
end if;
:new.updated := localtimestamp;
:new.updated_by := nvl(wwv_flow.g_user,user);
end;
谢谢@Kaushik Nayak和@Diego Souza