一般用PLSQL導(dǎo)入或?qū)С鲂蛄屑纯伞?/p>
創(chuàng)新互聯(lián)公司專注于沽源網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供沽源營銷型網(wǎng)站建設(shè),沽源網(wǎng)站制作、沽源網(wǎng)頁設(shè)計(jì)、沽源網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造沽源網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供沽源網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
1、用PLSQL登錄oracle數(shù)據(jù)庫。
2、在左邊的樹找到Sequences選項(xiàng)。
3、依次點(diǎn)擊Sequences旁邊的小箭頭-要導(dǎo)出的序列名處右鍵-DBMS元數(shù)據(jù)-DDL。
4、然后將彈出頁面的內(nèi)容復(fù)制即可。
5、導(dǎo)出完成。
6、要導(dǎo)入的話,登錄到目標(biāo)庫。
7、點(diǎn)擊左上角類似小紙片的按鈕,選擇SQL窗口。
8、把復(fù)制的語句粘貼到空白出,選中,點(diǎn)擊上方類似齒輪的按鈕,導(dǎo)入完成。
如何使用Oracle序列:
Oracle序列(sequence)是一種數(shù)據(jù)庫項(xiàng),能夠生成一個(gè)整數(shù)序列。通常用于填充數(shù)字類型的主鍵列。
1、創(chuàng)建序列:
CREATE SEQUENCE sequence_name
[START WITH start_num]
[INCREMENT BY increment_num]
[{MAXVALUE maximum_num|NOMAXVALUE}]
[{MINVALUE minimum_num|NOMINVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE cache_num|NOCACHE}]
[{ORDER|NOORDER}]
其中:
start_num:序列開始整數(shù)
increment_num:每次增加的整數(shù)增量
maximum:序列最大整數(shù)
minimum:序列最小整數(shù)
CYCLE:循環(huán)生成
NOCYCLE:不循環(huán)生成,默認(rèn)值
cache_num:保存在內(nèi)存中的整數(shù)的個(gè)數(shù)
NOCACHE:不緩存任何整數(shù)
例如:
CREATE SEQUENCE seq_test;(默認(rèn)值)
CREATE SEQUENCE seq_test START WITH 1 INCREMENT BY 2;
2、使用序列:
SELECT seq_test.nextval FROM dual;
insert into order_status2 (id) values (seq_test.nextval);
3、修改序列:
ALTER SEQUENCE語句來修改序列??梢孕薷牡膬?nèi)容:
不能修改序列的初值
序列的最小值不能大于當(dāng)前值
序列的最大值不能小于當(dāng)前值
例如:ALTER SEQUENCE seq_test INCREMENT BY 3;
4、刪除序列:
DROP SEQUENCE seq_test;
在oracle中sequence就是所謂的序列號(hào),每次取的時(shí)候它會(huì)自動(dòng)增加,一般用在需要按序列號(hào)排序的地方。
1、createsequence
你首先要有createsequence或者createanysequence權(quán)限,
createsequenceemp_sequence
incrementby1--每次加幾個(gè)
startwith1--從1開始計(jì)數(shù)
nomaxvalue--不設(shè)置最大值
nocycle--一直累加,不循環(huán)
cache10;
一旦定義了emp_sequence,你就可以用currval,nextval
currval=返回sequence的當(dāng)前值
nextval=增加sequence的值,然后返回sequence值
比如:
emp_sequence.currval
emp_sequence.nextval
可以使用sequence的地方:
-不包含子查詢、snapshot、view的select語句
-insert語句的子查詢中
-nsert語句的values中
-update的set中
可以看如下例子:
insertintoempvalues
(empseq.nextval,'lewis','clerk',7902,sysdate,1200,null,20);
selectempseq.currvalfromdual;
但是要注意的是:
-第一次nextval返回的是初始值;隨后的nextval會(huì)自動(dòng)增加你定義的incrementby值,然后返回增加后的值。currval總是返回當(dāng)前sequence的值,但是在第一次nextval初始化之后才能使用currval,否則會(huì)出錯(cuò)。一次nextval會(huì)增加一次sequence的值,所以如果你在同一個(gè)語句里面使用多個(gè)nextval,其值就是不一樣的。明白?
-如果指定cache值,oracle就可以預(yù)先在內(nèi)存里面放置一些sequence,這樣存取的快些。cache里面的取完后,oracle自動(dòng)再取一組到cache。使用cache或許會(huì)跳號(hào),比如數(shù)據(jù)庫突然不正常down掉(shutdownabort),cache中的sequence就會(huì)丟失.所以可以在createsequence的時(shí)候用nocache防止這種情況。
2、altersequence
你或者是該sequence的owner,或者有alteranysequence權(quán)限才能改動(dòng)sequence.可以alter除start至以外的所有sequence參數(shù).如果想要改變start值,必須dropsequence再re-create.
altersequence的例子
altersequenceemp_sequence
incrementby10
maxvalue10000
cycle--到10000后從頭開始
nocache;
影響sequence的初始化參數(shù):
sequence_cache_entries=設(shè)置能同時(shí)被cache的sequence數(shù)目。
可以很簡單的dropsequence
dropsequenceorder_seq;
oracle創(chuàng)建序列基本語法:
CREATE?SEQUENCE?sequence??//創(chuàng)建序列名稱
[INCREMENT?BY?n]??//遞增的序列值是n?如果n是正數(shù)就遞增,如果是負(fù)數(shù)就遞減?默認(rèn)是1
[START?WITH?n]????//開始的值,遞增默認(rèn)是minvalue?遞減是maxvalue
[{MAXVALUE?n?|?NOMAXVALUE}]?//最大值
[{MINVALUE?n?|?NOMINVALUE}]?//最小值
[{CYCLE?|?NOCYCLE}]?//循環(huán)/不循環(huán)
[{CACHE?n?|?NOCACHE}];//分配并存入到內(nèi)存中
創(chuàng)建序列
CREATE SEQUENCE SEQUENCE_NAME
START WITH 10
INCREMENT BY 10
MAXVALUE 2000
MINVALUE 10
NOCYCLE
CACHE 10
?通過序列的偽列來訪問序列的值
–SEQUENCE_NAME.NEXTVAL
返回序列的下一個(gè)值
–SEQUENCE_NAME.CURRVAL
返回序列的當(dāng)前值
實(shí)現(xiàn)思路:將主鍵設(shè)置為序列,自后每次按照固定規(guī)則增加相應(yīng)的數(shù)字即可。
1、首先要有create sequence或者create any sequence權(quán)限,
create sequence emp_sequence
INCREMENT BY 1 -- 每次加幾個(gè)
START WITH 1 -- 從1開始計(jì)數(shù)
NOMAXVALUE -- 不設(shè)置最大值
NOCYCLE -- 一直累加,不循環(huán)
CACHE 10;
2、插入到表中,
INSERT INTO emp VALUES
(emp_sequence .nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);
名稱欄目:怎么用oracle序列,Oracle的序列
網(wǎng)頁路徑:http://jinyejixie.com/article16/dsdghdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、標(biāo)簽優(yōu)化、App設(shè)計(jì)、搜索引擎優(yōu)化、網(wǎng)站策劃、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)