当前位置:首页 » 编程语言 » oracle创建序列sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle创建序列sql

发布时间: 2023-07-05 18:27:36

① oracle创建一个序列,让他一直显示五位怎么做,比如00001/00002/00003.......

我们经常会在在DB中创建序列:
-- Create sequence
create sequence COMMON_SEQ
minvalue 1
maxvalue 999999999
start with 1
increment by 1
cache 20
cycle;

我们的序列的最小值是从1开始,但是我们想让这种顺序取出来的序列的位数都一样,按照最大数的位数来算,我们需要8位的序列,那么我们就需要在1的前面补上7个零,只需要用下面的方法即可完成

select to_char(sysdate,'yyyyMMddHH24miss') || replace(lpad(common_sql.nextval,5,'0'),'','0') from al;

黑体部分的函数lpad就是在左侧补零,rpad是右侧补零

整个sql还有其他部分,就是我们可以让序列以特定的开头展示,比如我们用年月日时分秒14位来作为我们序列的开头,就是上面完整的sql

② 怎么查看oracle创建的序列

执行如下sql:

select * from user_sequences;

如果需要查看某个特定的序列,如下:

select * from user_sequences where sequence_name like '%T_SELL_BRAND%';

select * from user_sequences where sequence_name='SEQ_T_SELL_BRAND';

注意:序列名区分大小写。

③ 如何在oracle存储过程中drop 序列和新建序列

1、首先要保证该数据库用户有删除序列和新建序列的权限,存储过程中这个权限要显示赋权:
grant
create
sequence
to
数据库用户;
grant
drop
any
sequence
to
数据库用户;
2、存储过程中创建序列和删除序列:
创建序列:
execute
immediate
'create
sequence
序列名'
||
chr(10)
||
'minvalue
1'
||
chr(10)
||
'maxvalue
999999999999999999999999999'
||
chr(10)
||
'start
with
1'
||
chr(10)
||
'increment
by
1'
||
chr(10)
||
'cache
20';
删除序列:
execute
immediate
'drop
sequence
序列名';

④ Oracle数据库,创建一个序列,怎么设定该最大值无限制小为 1

create sequence seq2

NOMAXVALU
start with 1
increment by 1;

1.创建序列

ORACLE序列的语法格式为:

CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];

参考自:http: //www.cnblogs.com/kerrycode/archive/2013/03/18/2965747.html

⑤ Oracle数据库如何创建自增序列

oracle的自增需要依靠序列和触发器共同实现

比如

先创建一个表

createtabletest(idintprimarykey,
namevarchar2(10));

创建一个序列

createsequencetest_seq
incrementby1
startwith1
minvalue1
maxvalue9999999999999
nocache
order;

触发器实现

createorreplacetriggertest_trigger
beforeinsertontestforeachrow
begin
selecttest_seq.Nextvalinto:new.idfromal;
end;

然后你试试吧

insertintotest(name)values('张三');