oracle 序列

1、创建序列:

create sequence seq_xx   --创建序列名称
increment by 1  --增长幅度
start with 1  --初始值
maxvalue 9999999999999999;  --最大值

2、查询序列:

select seq_xx.nextval from dual;

--或者select seq_xx.nextval from sys.dual;

每查询一次,序列按自定义增长;

3、删除序列:

DROP SEQUENCE seq_xx;

4、判断序列是否存在,存在则删除:

有些情况下使用不合理,删除已有序列,再新建同名序列之后,重新使用该规则,可能会对已使用该序列数据造成影响。

declare   
 V_NUM number;   
BEGIN  
  ----多次删除时,每次都将v_num设置成为0
    V_NUM := 0;  
    ----判断序列 seq_name_1 是否存在(区分大小写)
    select count(0) into V_NUM from user_sequences where sequence_name = 'SEQ_XX'; 
    ----如果存在立即删除  
    if V_NUM > 0 then   
    execute immediate 'DROP SEQUENCE  SEQ_XX'';   
    end if;

END;

/

加了“/”之后,可以在后面接其他的SQL语句;

5、查询序列大小写问题

select * from user_sequences;   --查找用户建的序列

我们发现字段SEQUENCE_NAME的值里面有刚才创建的SEQ_XX,这就解释了为什么判断存在时候名字区分大小写了

posted @ 2019-12-18 14:47  小生怕痒  阅读(518)  评论(0编辑  收藏  举报