① 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('张三');