序列是Oracle
i提供的用於按照設定的規則自動產生數據的方案對象
在某些數據表的結構中
有些字段需要這種特性
比如
對於某個學生數據表的學號關鍵字段
用戶可以希望在錄入數據時
能夠自動在上一個記錄的學號字段上自動加
等
由於Oracle
i提供的
種基本數據類型並沒有這樣的功能
可以通過序列方案對象來實現
序列的創建 下面介紹在【企業管理器】中如何創建序列
(
)在【企業管理器】中選擇【myoracle
mynet】/【方案】/【序列】選項
單擊鼠標右鍵
在出現的快捷菜單裡選擇【創建】選項
如圖
所示
(
)出現如圖
所示的創建序列的【一般信息】選項卡
在【名稱】文本框裡輸入待定義的序列的名稱
TEMPSEQUENCE
在【方案】下拉列表框裡選擇序列所屬的用戶名
SCOTT
序列【類型】參數有兩個選項
若選擇【升序】單選鈕
則表示將創建從初始值向最大值遞增的序列
這是創建序列時的默認設置
若選擇【降序】單選鈕
則表示將創建從初始值向最小值遞減的序列
對【值】可以進行設置的參數如下
在【最小值】文本框裡設置序列允許的最小值
創建序列時該字段最初為空
如果單擊【創建】按鈕時該字段為空
則對升序序列使用默認值
而對降序序列使用默認值
在【最大值】文本框裡設置序列允許的最大值
創建序列時該字段最初為空
如果單擊【創建】按鈕後該字段為空
則將對升序序列使用默認值
而對降序序列使用默認值
在【時間間隔】文本框裡設置遞增序列遞增的間隔數值(升序序列)或遞減序列遞減的間隔數值(降序序列)
創建序列時該字段最初為空
如果單擊【創建】按鈕後該字段為空
將使用默認值
該字段只能為正整數
在【初始值】文本框裡設置序列的起始值
如果單擊【創建】按鈕後該字段為空
對升序序列將使用該序列默認的最小值
對降序序列將使用該序列默認的最大值
對【選項】可以設置的參數如下
若選擇【循環值】復選框
則表示指定在達到序列最小值或最大值之後
序列應繼續生成值
對升序序列來說
在達到最大值後將生成最小值
對降序序列來說
在達到最小值後將生成最大值
如果未選擇該復選框
序列將在達到最小值或最大值後停止生成任何值
默認情況下是未選擇狀態
若選擇【排序值】復選框
則指定序列號要按請求次序生成
默認情況下是未選擇狀態
在【高速緩存】中設置由數據庫預分配並存儲的值的數目參數
若選擇【默認值】單選鈕
則表示將設置默認值為
默認情況下選擇此選項
若選擇【無高速緩存】單選鈕
則表示指定不預分配序列值
若選擇【大小】單選鈕
則表示在文本框裡輸入可接受的值
最小值為
對循環序列來說
該值必須小於循環中值的個數
如果序列能夠生成的值數的上限小於高速緩存大小
則高速緩存大小將自動改換為該上限數
完成設置後單擊【創建】按鈕
(
)成功創建序列後
出現如圖
所示界面
單擊
確定
按鈕
(
)讀者也可以在【SQLPlus Worksheet】中執行下列SQL程序創建序列
―――――――――――――――――――――――――――――――――――――
CREATE SEQUENCE
SCOTT
TEMPSEQUENCE
INCREMENT BY
START WITH
MAXVALUE
E
MINVALUE
NOCYCLE CACHE
NOORDER
―――――――――――――――――――――――――――――――――――――
【配套程序位置】
第
章\ createsequence
sql
序列的使用 下面介紹在向數據表中插入數據時如何使用序列
(
)首先為實例建立一個數據表
SCOTT
SEQUENCE_TABLE
為簡化起見
該數據表僅包含一個類型為
NUMBER
的數據列
NO
在如圖
所示的創建表的【一般信息】選項卡中進行如下設置
在【名稱】文本框中輸入
SEQUENCE_TABLE
在【方案】下拉列表框中選擇
SCOTT
在【表空間】下拉列表框中選擇
USERS
在【名稱】單元格中輸入
NO
在【數據類型】下拉列表框單元格中選擇
NUMBER
完成設置後單擊【創建】按鈕
(
)讀者也可以在【SQLPlus Worksheet】中執行下列SQL代碼創建數據表
SCOTT
SEQUENCE_TABLE
―――――――――――――――――――――――――――――――――――――
CREATE TABLE
SCOTT
SEQUENCE_TABLE
(
NO
NUMBER(
) NOT NULL)
TABLESPACE
USERS
―――――――――――――――――――――――――――――――――――――
【配套程序位置】
第
章\ createsequencetable
sql
(
)在插入新的記錄時
使用剛創建的
TEMPSEQUENCE
序列來自動產生
NO
數據列的值
在【SQLPlus Worksheet】裡執行下面的SQL代碼
執行的結果如圖
所示
―――――――――――――――――――――――――――――――――――――
INSERT INTO SCOTT
SEQUENCE_TABLE(NO)
VALUES(SCOTT
TEMPSEQUENCE
NEXTVAL);
―――――――――――――――――――――――――――――――――――――
【配套程序位置】
第
章\ insertsequencetable
sql
SCOTT
TEMPSEQUENCE
NEXTVAL
表分配下一個惟一的
可用的序列號
執行
SCOTT
TEMPSEQUENCE
NEXTVAL
後
可以使用
SCOTT
TEMPSEQUENCE
CURRVAL
來標識上一個已經存儲的序列值
(
)在【SQLPlus Worksheet】中可以執行查詢數據表
SCOTT
SEQUENCE_TABLE
數據的語句
執行結果如圖
所示
表明序列
SCOTT
SEQUENCE
產生的值已經成功錄入數據表中
―――――――――――――――――――――――――――――――――――――
select * from scott
sequence_table;
―――――――――――――――――――――――――――――――――――――
【配套程序位置】
第
章\ selectsequencetable
sql
序列的刪除 下面介紹在【企業管理器】中如何刪除序列
(
)在創建好的序列
SEQUENCE
上用單擊鼠標右鍵
在出現的快捷菜單裡選擇【移去】選項
如圖
所示
(
)出現如圖
所示的【刪除序列確認】界面
單擊【是】按鈕
From:http://tw.wingwit.com/Article/program/Oracle/201311/17301.html