在oracle中,可利用select語(yǔ)句配合Nextval查詢下一個(gè)序列,Nextval第一次返回的是初始值,之后每次都會(huì)增加一次sequence值,因此可查詢下一個(gè)序列,語(yǔ)法為“select 序列名.Nextval from dual”。
本教程操作環(huán)境:Windows10系統(tǒng)、Oracle 11g版、Dell G3電腦。
oracle怎么查詢下一個(gè)序列
select 序列名.Nextval from dual;--生成并獲得下一個(gè)序列 select 序列名.CURRVAL from dual;--如果與上述語(yǔ)句為同一會(huì)話,可以通過(guò)此句獲得上面生成的序列。
示例如下:
擴(kuò)展知識(shí):
SELECT INR_REQUIRMENT_SQUENCE.CURRVAL FROM dual
–獲取當(dāng)前的sequence的值,第一次NEXTVAL返回的是初始值;
隨后的NEXTVAL會(huì)自動(dòng)增加你定義的INCREMENT BY值, 然后返回增加后的值。CURRVAL 總是返回當(dāng)前sequence的值,但是在第一次NEXTVAL 初始化之后才能使用CURRVAL,否則會(huì)出錯(cuò)。
一次NEXTVAL會(huì)增加一次sequence的值, 所以如果你在同一個(gè)語(yǔ)句里面使用多個(gè)NEXTVAL。
其實(shí)sequence是序列號(hào)生成器,可以為表中的行自動(dòng)生成序列號(hào),產(chǎn)生一組等間隔的數(shù)值(類型為數(shù)字)。其主要的用途是生成表的主鍵值,可以在插入語(yǔ)句中引用,在插入之前,獲取序列號(hào)nextval值,然后進(jìn)行插入。也可以通過(guò)查詢檢查當(dāng)前值,或使序列增至下一個(gè)值。
如何定義一個(gè)sequence?
create sequence INR_REQUIRMENT_SQUENCE INCREMENT BY 1 -- 每次加幾個(gè) START WITH 1 -- 從1開(kāi)始計(jì)數(shù) NOMAXVALUE -- 不設(shè)置最大值 NOCYCLE -- 一直累加,不循環(huán) CACHE 10;
推薦教程:《Oracle視頻教程》