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