1123-01 更新 oracle複合數據類型html
參考:
淺談oracle複合數據類型 http://wenku.baidu.com/view/79b6e13510661ed9ad51f399.html數據庫
oracle複合數據類型基礎知識
http://wenku.baidu.com/view/95a0722bba1aa8114431d998.html?from=search數組
Oracle複合類型之RECORD http://wenku.baidu.com/view/d3540427482fb4daa58d4b17.html?from=searchoracle
ORACLE中游標和複合數據類型
http://wenku.baidu.com/view/16312c154431b90d6c85c735.html?from=search函數
oracle三種數組 http://wenku.baidu.com/view/b438aa4dcf84b9d528ea7a23.html?from=searchfetch
記錄 ,3種 集合(數組)spa
記錄:單行多列
集合:多行單列.net
記錄的定義:
1.顯示定義
2.隱式定義
3.遊標定義htm
記錄的賦值:
1.賦值語句 select into
2.賦值符 :=
3.遊標提取語句 fetch into對象
記錄 的應用:遊標的提取
3種集合
1.PL/SQL表(index_by表,索引表)
2.netsted_table(嵌套表)
3.varray|varying array 變長數組
1.數據稀疏性(sparsity):元素下標是否間隔
2.數據綁定:元素數量限制
3.數據庫存儲能力:可否存儲在DB中;元素數據類型
集合的初始化
1.index_by表
無需初始化,定義後能夠直接賦值
2.nested_table,varray
使用 構造函數 進行初始化
集合的賦值:
1.賦值語句 select into
2.賦值符 :=
3.遊標的提取:逐行提取
fetch <cursor> into <一維數組>
4.遊標的提取:一次性提取所有
fetch <cursor> bulk collect into <二維數組>
當<cursor>返回 單行記錄 時,也能夠用於 <一維數組>。
說明:oracle中沒有 一維數組,二維數據,可是 oracle的複合數據類型 能夠實現相同的功能。
一維數組:記錄(元素爲標量數據類型),集合( 元素爲標量數據類型 )
二維數組: 記錄(元素爲複合數據類型),集合( 元素爲複合數據類型 )
集合的擴展:
1.index_by表:元素個數沒有限制,limit()爲null,無需extend,賦值便可擴展元素個數。
2.nested_table表:默認個數即 構造函數 參數個數,;下標默認連續且從1開始;溢出的下標 須要先擴展,再賦值。
3.varray|varying array變長數組: 個數在定義時由max_size指定;下標默認連續且從1開始;溢出的下標 須要先擴展,再賦值。
元素的數據類型:
1.index_by
標量
任何合法的PL/SQL類型
2.nested_table
標量
記錄,集合
3.varray
標量
記錄(標量)
集合的函數/方法(面向對象的叫法):
1.構造函數
類型名([元素列表])
2.內建函數
長度
擴展元素,刪除元素
元素是否存在
首個,末個元素
嵌套表的應用:遊標的 bulk collect
3種集合的內建函數:非法內建函數:1.index_by表:exist()extend()extend(x)extend(x,n)理解:index_by表賦值便可擴展,因此extend方法非法。2.nested_table表exist()3.varray|varying array:exist()delete(idx)delete(idx1,idx2)