真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

oracle怎么取序列 oracle序列的用法

Oracle中序列sequence用法

) 建立序列命令

創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網技術服務公司,擁有項目成都網站設計、成都網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元右江做網站,已為上家服務,為右江各地企業(yè)和個人服務,聯(lián)系電話:028-86922220

CREATE SEQUENCE [user ]sequence_name

[increment by n]

[start with n]

[maxvalue n | nomaxvalue]

[minvalue n | nominvalue];

INCREMENT BY 指定序列號之間的間隔 該值可為正的或負的整數 但不可為 序列為升序 忽略該子句時 缺省值為

START WITH 指定生成的第一個序列號 在升序時 序列可從比最小值大的值開始 缺省值為序列的最小值 對于降序 序列可由比最大值小的值開始 缺省值為序列的最大值

MAXVALUE 指定序列可生成的最大值

NOMAXVALUE 為升序指定最大值為 為降序指定最大值為

MINVALUE 指定序列的最小值

NOMINVALUE 為升序指定最小值為 為降序指定最小值為

) 更改序列命令

ALTERSEQUENCE [user ]sequence_name

[INCREMENT BY n]

[MAXVALUE n| NOMAXVALUE ]

[MINVALUE n | NOMINVALUE]

修改序列可以

? 修改未來序列值的增量

? 設置或撤消最小值或最大值

? 改變緩沖序列的數目

? 指定序列號是否是有序

) 刪除序列命令

DROP SEQUENCE [user ]sequence_name

從數據庫中刪除一序列

創(chuàng)建一個序列號的語句

CREATE SEQUENCE EXAM_NO_SEQ

START WITH

MAXVALUE

MINVALUE

CYCLE

CACHE

NOORDER;

PB中取序列號的用法

string? v_exam_no

//獲取申請序號

SELECT exam_no_seq nextval INTO :v_exam_no FROM dual

using ghis_database;

if ghis_database SQLCODE then

messagebox( 取檢查序號出錯 )

return

end if

其他版本

oracle中沒有自增類型的字段的 所以通常情況下需要定義一個sequence來作為自動增長類型字段的數據

于是記錄了一些關于oracle sequence的資料 已備查用!

Oracle中的序列(sequence)

: 如何定義一個序列

僅向前的數字變量(和SQL中的自動編號有點像 identity( ) )

格式:

create sequence 序列名稱

start with 起始數

increment by 增長量

[maxvalue 值]

[minvalue 值]

[cycle 當到達最大值的時候 將繼續(xù)從頭開始]

[Nocycle 一直累加 不循環(huán)]

[Cache ]

注意

第一次NEXTVAL返回的是初始值;隨后的NEXTVAL會自動增加你定義的INCREMENT BY值 然后返回增加后的值 CURRVAL 總是返回當前SEQUENCE的值 但是在第一次NEXTVAL初始化之后才能使用CURRVAL 否則會出錯 一次NEXTVAL會增加一次SEQUENCE的值

如果指定CACHE值 ORACLE就可以預先在內存里面放置一些sequence 這樣存取的快些 cache里面的取完后 oracle自動再取一組到cache 使用cache或許會跳號 比如數據庫突然不正常down掉(shutdown abort) cache中的sequence就會丟失 所以可以在create sequence的時候用nocache防止這種情況

example:

create sequence mySeq

start with

increment by

maxvalue

minvalue

cycle

:怎么去取序列數據:

currval curenvalue

nextVal NextVlaue

example:

select mySeq nextVal from dual

注意一點:currval只有當nextVal執(zhí)行一次以后才可以用

在創(chuàng)建表的時候 可以使用序列

具體例子:

create table 公司基本信息表

(

ComPID int

CompName varchar ( )

)

insert into 公司基本信息表 values(mySeq nextVal AA )

:如何修改序列

修改前提是sequence 的owner 或者有ALTER ANY SEQUENCE 權限才能改動sequence 可以alter除start至以外的所有sequence參數 如果想要改變start值 必須 drop sequence 再 re create

Alter sequence 的例子

ALTER SEQUENCE emp_sequence

INCREMENT BY

MAXvalue

CYCLE 到 后從頭開始

NOCACHE

影響Sequence的初始化參數

SEQUENCE_CACHE_ENTRIES =設置能同時被cache的sequence數目

也可以這樣

alter sequence mySeq maxvalue

注意 不能改start with 其他隨便改(設置minvalue值的時候不能大于當前值)

:如何查看刪除某個表空間所有序列

查看

select * from user_sequences

如何刪除:

drop sequence 序列名稱

sequence屬于什么對象

sequence不屬于某個表 也不屬于某個字段 sequence僅僅屬于某個用戶

lishixinzhi/Article/program/Oracle/201311/17518

oracle 如何獲取剛插入的序列

你可以先申明一個變量然后將序列值插入到變量當中就可以了 例如

declare p_seq number;

begin

select SEQ_MID.NEXTVAL into p_seq from dual;

dbms_output.put_line( 'MSG'||p_seq);

end;

/

ORACLE怎么取行序列號,從視圖中

select 序列名.nextval from 視圖名 where 相關條件.

序列只要是庫中的都能用序列名.nextval 取出包含過程、函數、包、表、視圖。

oracle怎樣在表中引用序列

在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。

1、createsequence

你首先要有createsequence或者createanysequence權限,

createsequenceemp_sequence

incrementby1--每次加幾個

startwith1--從1開始計數

nomaxvalue--不設置最大值

nocycle--一直累加,不循環(huán)

cache10;

一旦定義了emp_sequence,你就可以用currval,nextval

currval=返回sequence的當前值

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會自動增加你定義的incrementby值,然后返回增加后的值。currval總是返回當前sequence的值,但是在第一次nextval初始化之后才能使用currval,否則會出錯。一次nextval會增加一次sequence的值,所以如果你在同一個語句里面使用多個nextval,其值就是不一樣的。明白?

-如果指定cache值,oracle就可以預先在內存里面放置一些sequence,這樣存取的快些。cache里面的取完后,oracle自動再取一組到cache。使用cache或許會跳號,比如數據庫突然不正常down掉(shutdownabort),cache中的sequence就會丟失.所以可以在createsequence的時候用nocache防止這種情況。

2、altersequence

你或者是該sequence的owner,或者有alteranysequence權限才能改動sequence.可以alter除start至以外的所有sequence參數.如果想要改變start值,必須dropsequence再re-create.

altersequence的例子

altersequenceemp_sequence

incrementby10

maxvalue10000

cycle--到10000后從頭開始

nocache;

影響sequence的初始化參數:

sequence_cache_entries=設置能同時被cache的sequence數目。

可以很簡單的dropsequence

dropsequenceorder_seq;


本文名稱:oracle怎么取序列 oracle序列的用法
URL鏈接:http://weahome.cn/article/hjhegi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部