-- 定義陣列的大小200,以及所能儲存的最大位元組數2000
create or replace type va_planguage is varray(200) of varchar2(2000);
declare
lang va_planguage;
begin
lang:=va_planguage('可變陣列中的資料one','可變陣列中的資料two','可變陣列中的資料three');
for i in 1..lang.count loop
dbms_output.put_line(lang(i));
end loop;
end;
-- 巢狀表nested table的宣告及初始化(乙個漢字兩個位元組)
create or replace type nt_planguage is table of varchar2(19);
declare
lang nt_planguage;
begin
lang:=nt_planguage('巢狀表測試資料one','巢狀表測試資料two','巢狀表測試資料three');
for i in 1..lang.count loop
dbms_output.put_line(lang(i));
end loop;
end;
-- 關聯陣列associative array(index_by table)宣告與初始化測試
declare
type ib_planguage is table of varchar2(1000) index by pls_integer;
lang ib_planguage;
idx pls_integer;
begin
lang(1):='關聯陣列one';
lang(9):='關聯陣列two';
lang(3):='關聯陣列three';
idx:=lang.first;
while(idx is not null) loop
dbms_output.put_line(lang(idx));
idx:=lang.next(idx);
end loop;
end; /*
oracle支援3種型別的集合:
關聯陣列(associative array,即index-by table)
巢狀表(nested table)
變長陣列(varray)
它們的區別之一是: nested table與varry既可以被用於pl/sql,也可以被直接用於資料庫中,
但是associative array不行,
也就是說,associative array是不能通過create type語句進行單獨建立,
只能在pl/sql塊(或package)中進行定義並使用(即適用範圍是pl/sql block級別),
而nested table與varray則可以使用create type進行建立(即適用範圍是schema級別),
它們還可以直接作為資料庫表中列的型別。
associative array的索引可以是稀疏的(即可以不連續)。
nested table既可以通過create type宣告成全域性型別,也可以在pl/sql塊中宣告塊級別的型別。
與associative array不同,nested table變數需要顯式初始化
nested table初始化之後還需要呼叫extend過程,擴充套件此集合的「容量」。
1)varray可以在宣告時限制集合的長度,
extend的長度不能大於集合宣告時的長度,
但是在給集合成員賦值時,以extend為準
(2)其索引總是連續的,而nested table的索引在初始化賦值時是連續的,
不過隨著集合元素被刪除,可能變得不連續。
通常來說,對集合型別的第一選擇應該是associative array,
因為它不需要初始化或者extend操作,並且是迄今為止最高效的集合型別。
唯一不足的一點是它只能用於pl/sql而不能直接用於資料庫。
如果需要允許使用負數索引,應該選擇associative array;
如果需要使用10g,11g中的那些集合操作,應該選擇nested table;
如果需要限制集合元素的個數,應該選擇varray */
集合資料型別
集合用大括號 表示,元素間用逗號分隔 建立集合型別用 或者set 建立空集合型別,必須用set 集合中每個元素必須唯一,不存在相同元素 集合中的元素之間無序 a b a和b中的所有的元素 a b 包含a但是不包含b的元素 a b 同時屬於a和b的元素 a b 包含ab中不相同的元素 a b或a b或...
oracle復合資料型別
type用於定於不確定的資料型別 declare v fd change left ekp change.fd change left type v id是表name的id的資料型別 v fd change total ekp change.fd change total type begin se...
Python的集合資料型別
元組集合 字典對比 列表 模擬字串 有序元素集合 通過索引訪問 單個索引i 2 區間索引i 3 列表元素型別可不同 l1 l2 合併,連線 l1 2,重複兩次 len l 返回元素個數 x in list 返回true or false l1.sort 排序從小到大 l2.reverse 倒序 l1...