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

首頁 > 開發 > 綜合 > 正文

PL/SQL序列

2024-07-21 02:13:21
字體:
來源:轉載
供稿:網友



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

序列的創建

    下面介紹在【企業管理器】中如何創建序列。
    (1)在【企倒芾砥鰲恐醒≡瘛緈yoracle.mynet】/【方案】/【序列】選項,單擊鼠標右鍵,在出現的快捷菜單里選擇【創建】選項,如圖9.48所示。

    (2)出現如圖9.49所示的創建序列的【一般信息】選項卡。
    在【名稱】文本框里輸入待定義的序列的名稱“tempsequence”。
    在【方案】下拉列表框里選擇序列所屬的用戶名“scott”。
    序列【類型】參數有兩個選項。若選擇【升序】單選鈕,則表示將創建從初始值向最大值遞增的序列,這是創建序列時的默認設置;若選擇【降序】單選鈕,則表示將創建從初始值向最小值遞減的序列。
    對【值】可以進行設置的參數如下。
    在【最小值】文本框里設置序列允許的最小值。創建序列時該字段最初為空。如果單擊【創建】按鈕時該字段為空,則對升序序列使用默認值 1,而對降序序列使用默認值 -1026。
    在【最大值】文本框里設置序列允許的最大值。創建序列時該字段最初為空。如果單擊【創建】按鈕后該字段為空,則將對升序序列使用默認值 1027,而對降序序列使用默認值-1。
    在【時間間隔】文本框里設置遞增序列遞增的間隔數值(升序序列)或遞減序列遞減的間隔數值(降序序列)。創建序列時該字段最初為空,如果單擊【創建】按鈕后該字段為空,將使用默認值1,該字段只能為正整數。
    在【初始值】文本框里設置序列的起始值。如果單擊【創建】按鈕后該字段為空,對升序序列將使用該序列默認的最小值,對降序序列將使用該序列默認的最大值。
    對【選項】可以設置的參數如下。
    若選擇【循環值】復選框,則表示指定在達到序列最小值或最大值之后,序列應繼續生成值。對升序序列來說,在達到最大值后將生成最小值。對降序序列來說,在達到最小值后將生成最大值。如果未選擇該復選框,序列將在達到最小值或最大值后停止生成任何值。默認情況下是未選擇狀態。
    若選擇【排序值】復選框,則指定序列號要按請求次序生成,默認情況下是未選擇狀態。
    在【高速緩存】中設置由數據庫預分配并存儲的值的數目參數。若選擇【默認值】單選鈕,則表示將設置默認值為 20,默認情況下選擇此選項;若選擇【無高速緩存】單選鈕,則表示指定不預分配序列值;若選擇【大小】單選鈕,則表示在文本框里輸入可接受的值,最小值為2,對循環序列來說,該值必須小于循環中值的個數。如果序列能夠生成的值數的上限小于高速緩存大小,則高速緩存大小將自動改換為該上限數。
    完成設置后單擊按鈕。
    (3)成功創建序列后,出現如圖9.50所示界面。單擊“確定”按鈕。

    (3)讀者也可以在【sqlplus worksheet】中執行下列sql程序創建序列。
    ―――――――――――――――――――――――――――――――――――――
    create sequence "scott"."tempsequence"
        increment by 1 start with 1
        maxvalue 1.0e28 minvalue 1
        nocycle cache 20 noorder
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ createsequence.sql。

序列的使用

    下面介紹在向數據表中插入數據時如何使用序列。
    (1)首先為實例建立一個數據表“scott.sequence_table”,為簡化起見,該數據表僅包含一個類型為“number”的數據列“no”。
    在如圖9.51所示的創建表的【一般信息】選項卡中進行如下設置。
    在【名稱】文本框中輸入“sequence_table”。
    在【方案】下拉列表框中選擇“scott”。
    在【表空間】下拉列表框中選擇“users”。
    在【名稱】單元格中輸入“no”,在【數據類型】下拉列表框單元格中選擇“number”。
    完成設置后單擊按鈕。

    (2)讀者也可以在【sqlplus worksheet】中執行下列sql代碼創建數據表“scott.sequence_table”。
    ―――――――――――――――――――――――――――――――――――――
    create table "scott"."sequence_table" ("no" number(10) not null)
        tablespace "users"
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ createsequencetable.sql。
    (3)在插入新的記錄時,使用剛創建的“tempsequence”序列來自動產生“no”數據列的值。在【sqlplus worksheet】里執行下面的sql代碼,執行的結果如圖9.52所示。
    ―――――――――――――――――――――――――――――――――――――
    insert into scott.sequence_table(no)
    values(scott.tempsequence.nextval);
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ insertsequencetable.sql。
    “scott.tempsequence.nextval”表分配下一個惟一的、可用的序列號。
    執行“scott.tempsequence.nextval”后,可以使用“scott.tempsequence. currval”來標識上一個已經存儲的序列值。
    (4)在【sqlplus worksheet】中可以執行查詢數據表“scott.sequence_table”數據的語句。執行結果如圖9.53所示,表明序列“scott.sequence”產生的值已經成功錄入數據表中。
    ―――――――――――――――――――――――――――――――――――――
    select * from scott.sequence_table;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ selectsequencetable.sql。


序列的刪除

    下面介紹在【企業管理器】中如何刪除序列。
    (1)在創建好的序列“sequence1”上用單擊鼠標右鍵,在出現的快捷菜單里選擇【移去】選項,如圖9.54所示。

    (2)出現如圖9.55所示的【刪除序列確認】界面,單擊按鈕。

上一篇:PL/SQL異常處理

下一篇:PL/SQL過程

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长治县| 崇仁县| 通海县| 五大连池市| 舟山市| 南华县| 西吉县| 前郭尔| 天全县| 高碑店市| 和政县| 临漳县| 广昌县| 盈江县| 侯马市| 年辖:市辖区| 和田县| 太原市| 泰安市| 津南区| 普兰店市| 霸州市| 枝江市| 洛隆县| 苍梧县| 合江县| 丰城市| 汨罗市| 灵山县| 顺昌县| 中超| 澳门| 饶平县| 灵武市| 皮山县| 林口县| 梧州市| 常熟市| 南充市| 富锦市| 虹口区|