PL/SQL 中的巢狀表是一種集合類型,可讓您儲存無限數量的相同類型的元素。它們對於以結構化格式保存資料集特別有用,非常適合需要管理多行相關資料的場景。
簡單定義
巢狀表:巢狀表是一種集合類型,可以容納任意數量的元素(相同資料型別)。與 VARRAY 不同,嵌套表可以是稀疏的,這意味著它們的索引中可以有間隙。
語法與結構
文法
建立或取代類型 type_name 作為 element_type 的表;
type_name:巢狀表類型的名稱。
element_type:巢狀表中元素的資料類型(例如,VARCHAR2、NUMBER 或物件類型)。
變數名稱型別名稱;
EXTEND(n):將巢狀表的大小增加 n 個元素。
TRIM(n):將巢狀表的大小減少 n 個元素。
DELETE(i):刪除索引 i 處的元素。
COUNT:傳回巢狀表中的元素數量。
範例:巢狀的星期幾
這是一個綜合範例,示範如何為一週中的幾天建立巢狀表、填滿它並顯示內容。
第 1 步:建立巢狀表類型
首先,我們定義一個巢狀表類型來保存日期的名稱。
建立或取代類型 DaysOfWeek 作為 VARCHAR2(15) 的表格;
第 2 步:宣告並填入巢狀表
接下來,我們聲明一個這種類型的變量,並用星期幾填充它。
聲明
天數 DaysOfWeek; -- 宣告一個巢狀表變數
開始
-- 初始化巢狀表
天 := DaysOfWeek();
-- Add elements to the nested table days.EXTEND(7); -- Extend the size by 7 for all days of the week days(1) := 'Monday'; days(2) := 'Tuesday'; days(3) := 'Wednesday'; days(4) := 'Thursday'; days(5) := 'Friday'; days(6) := 'Saturday'; days(7) := 'Sunday'; -- Display the elements in the nested table FOR i IN 1 .. days.COUNT LOOP DBMS_OUTPUT.PUT_LINE('Day ' || i || ': ' || days(i)); END LOOP;
結束;
/
詳細說明
語句 CREATE OR REPLACE TYPE DaysOfWeek AS TABLE OF VARCHAR2(15);定義了一個名為 DaysOfWeek 的新嵌套表類型,它可以容納最多 15 個字元長的字串。此類型將用於儲存日期的名稱。
在 DECLARE 區塊中,days 被宣告為 DaysOfWeek 類型的變數。這個變數將保存我們的天數集合。
天 := DaysOfWeek();將 days 變數初始化為 DaysOfWeek 型別的空巢狀表。
days.EXTEND(7);增加了 days 巢狀表的大小以容納 7 個元素(一個元素代表一週的每一天)。
每一天都被分配到對應的索引:
天(1) := '星期一';
天(2) := '星期二';
天(3) := '星期三';
天(4) := '星期四';
天(5) := '星期五';
天(6) := '星期六';
天(7) := '星期日';
FOR 循環使用 days.COUNT 迭代 days 巢狀表,以確定存在多少個元素。
DBMS_OUTPUT.PUT_LINE 每天輸出及其索引。
輸出
執行此區塊時,輸出將是:
第一天:星期一
第 2 天:星期二
第三天:星期三
第四天:星期四
第五天:星期五
第六天:星期六
第七天:週日
結論
此範例示範如何在 PL/SQL 中定義、填入和操作巢狀表。巢狀表是通用的結構,可讓您有效地處理資料集合,並且它們可用於需要動態資料管理的各種應用程式。
以上是PL/SQL 中的巢狀表集合的詳細內容。更多資訊請關注PHP中文網其他相關文章!