在oracle中创建特定的值序列

时间:2018-10-01 13:07:33

标签: sql oracle sequence apex

我需要创建一个具有特定值的oracle序列

  

FOUR0001,FOUR0002,FOUR0003 .....

增量必须按顺序。

3 个答案:

答案 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