国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

PL/SQL序列

2024-07-21 02:40:38
字體:
供稿:網(wǎng)友

 
    序列是Oracle 9i提供的用于按照設定的規(guī)則自動產(chǎn)生數(shù)據(jù)的方案對象。在某些數(shù)據(jù)表的結(jié)構中,有些字段需要這種特性。比如,對于某個學生數(shù)據(jù)表的學號要害字段,用戶可以希望在錄入數(shù)據(jù)時,能夠自動在上一個記錄的學號字段上自動加1等。由于Oracle 9i提供的16種基本數(shù)據(jù)類型并沒有這樣的功能,可以通過序列方案對象來實現(xiàn)。

序列的創(chuàng)建

    下面介紹在【企業(yè)治理器】中如何創(chuàng)建序列。
    (1)在【企倒芾砥鰲恐醒≡瘛緈yoracle.mynet】/【方案】/【序列】選項,單擊鼠標右鍵,在出現(xiàn)的快捷菜單里選擇【創(chuàng)建】選項,如圖9.48所示。
PL/SQL序列
    (2)出現(xiàn)如圖9.49所示的創(chuàng)建序列的【一般信息】選項卡。
    在【名稱】文本框里輸入待定義的序列的名稱“TEMPSEQUENCE”。
    在【方案】下拉列表框里選擇序列所屬的用戶名“SCOTT”。
    序列【類型】參數(shù)有兩個選項。若選擇【升序】單選鈕,則表示將創(chuàng)建從初始值向最大值遞增的序列,這是創(chuàng)建序列時的默認設置;若選擇【降序】單選鈕,則表示將創(chuàng)建從初始值向最小值遞減的序列。
    對【值】可以進行設置的參數(shù)如下。
    在【最小值】文本框里設置序列答應的最小值。創(chuàng)建序列時該字段最初為空。假如單擊【創(chuàng)建】按鈕時該字段為空,則對升序序列使用默認值 1,而對降序序列使用默認值 -1026。
    在【最大值】文本框里設置序列答應的最大值。創(chuàng)建序列時該字段最初為空。假如單擊【創(chuàng)建】按鈕后該字段為空,則將對升序序列使用默認值 1027,而對降序序列使用默認值-1。
    在【時間間隔】文本框里設置遞增序列遞增的間隔數(shù)值(升序序列)或遞減序列遞減的間隔數(shù)值(降序序列)。創(chuàng)建序列時該字段最初為空,假如單擊【創(chuàng)建】按鈕后該字段為空,將使用默認值1,該字段只能為正整數(shù)。
    在【初始值】文本框里設置序列的起始值。假如單擊【創(chuàng)建】按鈕后該字段為空,對升序序列將使用該序列默認的最小值,對降序序列將使用該序列默認的最大值。
    對【選項】可以設置的參數(shù)如下。
    若選擇【循環(huán)值】復選框,則表示指定在達到序列最小值或最大值之后,序列應繼續(xù)生成值。對升序序列來說,在達到最大值后將生成最小值。對降序序列來說,在達到最小值后將生成最大值。假如未選擇該復選框,序列將在達到最小值或最大值后停止生成任何值。默認情況下是未選擇狀態(tài)。
    若選擇【排序值】復選框,則指定序列號要按請求次序生成,默認情況下是未選擇狀態(tài)。
    在【高速緩存】中設置由數(shù)據(jù)庫預分配并存儲的值的數(shù)目參數(shù)。若選擇【默認值】單選鈕,則表示將設置默認值為 20,默認情況下選擇此選項;若選擇【無高速緩存】單選鈕,則表示指定不預分配序列值;若選擇【大小】單選鈕,則表示在文本框里輸入可接受的值,最小值為2,對循環(huán)序列來說,該值必須小于循環(huán)中值的個數(shù)。假如序列能夠生成的值數(shù)的上限小于高速緩存大小,則高速緩存大小將自動改換為該上限數(shù)。
    完成設置后單擊PL/SQL序列按鈕。
    (3)成功創(chuàng)建序列后,出現(xiàn)如圖9.50所示界面。單擊“確定”按鈕。
PL/SQL序列
    (3)讀者也可以在【SQLPlus Worksheet】中執(zhí)行下列SQL程序創(chuàng)建序列。
    ―――――――――――――――――――――――――――――――――――――
    CREATE SEQUENCE "SCOTT"."TEMPSEQUENCE"
        INCREMENT BY 1 START WITH 1
        MAXVALUE 1.0E28 MINVALUE 1
        NOCYCLE CACHE 20 NOORDER
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ createsequence.sql。


序列的使用

    下面介紹在向數(shù)據(jù)表中插入數(shù)據(jù)時如何使用序列。
    (1)首先為實例建立一個數(shù)據(jù)表“SCOTT.SEQUENCE_TABLE”,為簡化起見,該數(shù)據(jù)表僅包含一個類型為“NUMBER”的數(shù)據(jù)列“NO”。
    在如圖9.51所示的創(chuàng)建表的【一般信息】選項卡中進行如下設置。
    在【名稱】文本框中輸入“SEQUENCE_TABLE”。
    在【方案】下拉列表框中選擇“SCOTT”。
    在【表空間】下拉列表框中選擇“USERS”。
    在【名稱】單元格中輸入“NO”,在【數(shù)據(jù)類型】下拉列表框單元格中選擇“NUMBER”。
    完成設置后單擊PL/SQL序列按鈕。
PL/SQL序列
    (2)讀者也可以在【SQLPlus Worksheet】中執(zhí)行下列SQL代碼創(chuàng)建數(shù)據(jù)表“SCOTT.SEQUENCE_TABLE”。
    ―――――――――――――――――――――――――――――――――――――
    CREATE TABLE "SCOTT"."SEQUENCE_TABLE" ("NO" NUMBER(10) NOT NULL)
        TABLESPACE "USERS"
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ createsequencetable.sql。
    (3)在插入新的記錄時,使用剛創(chuàng)建的“TEMPSEQUENCE”序列來自動產(chǎn)生“NO”數(shù)據(jù)列的值。在【SQLPlus Worksheet】里執(zhí)行下面的SQL代碼,執(zhí)行的結(jié)果如圖9.52所示。
    ―――――――――――――――――――――――――――――――――――――
    INSERT INTO SCOTT.SEQUENCE_TABLE(NO)
    VALUES(SCOTT.TEMPSEQUENCE.NEXTVAL);
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ insertsequencetable.sql。
    “SCOTT.TEMPSEQUENCE.NEXTVAL”表分配下一個惟一的、可用的序列號。
    執(zhí)行“SCOTT.TEMPSEQUENCE.NEXTVAL”后,可以使用“SCOTT.TEMPSEQUENCE. CURRVAL”來標識上一個已經(jīng)存儲的序列值。
    (4)在【SQLPlus Worksheet】中可以執(zhí)行查詢數(shù)據(jù)表“SCOTT.SEQUENCE_TABLE”數(shù)據(jù)的語句。執(zhí)行結(jié)果如圖9.53所示,表明序列“SCOTT.SEQUENCE”產(chǎn)生的值已經(jīng)成功錄入數(shù)據(jù)表中。
    ―――――――――――――――――――――――――――――――――――――
    select * from scott.sequence_table;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ selectsequencetable.sql。

(圖片較大,請拉動滾動條觀看)

序列的刪除

    下面介紹在【企業(yè)治理器】中如何刪除序列。
    (1)在創(chuàng)建好的序列“SEQUENCE1”上用單擊鼠標右鍵,在出現(xiàn)的快捷菜單里選擇【移去】選項,如圖9.54所示。
PL/SQL序列
    (2)出現(xiàn)如圖9.55所示的【刪除序列確認】界面,單擊PL/SQL序列按鈕。
PL/SQL序列


上一篇:PL/SQL過程

下一篇:PL/SQL異常處理

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 静安区| 都匀市| 额尔古纳市| 大理市| 淅川县| 柘城县| 新绛县| 旺苍县| 万载县| 兴山县| 武安市| 冀州市| 北辰区| 鄂托克旗| 包头市| 柘城县| 昌黎县| 城固县| 成武县| 迭部县| 太湖县| 勐海县| 洮南市| 怀化市| 昌都县| 文水县| 区。| 北辰区| 台州市| 凉山| 平遥县| 张家口市| 谢通门县| 安康市| 昔阳县| 招远市| 洪雅县| 交口县| 湾仔区| 津南区| 工布江达县|