集合是一組具有相同資料類型的有序資料項目。通常,資料項目是標量欄位,但也可以是使用者定義的類型,例如記錄類型或物件類型,只要構成使用者定義型別的每個欄位的結構和資料類型對於集合中的每個元素相同即可。通過在一對括弧內使用下標標記法來引用集合中的每個特定資料項目。
說明
不支援多級集合(即,集合的資料項目是另一個集合)。
最常見的集合類型是數組。在PolarDB PostgreSQL版(相容Oracle)中,支援的集合類型是關聯陣列(以前稱為Oracle中索引表)、巢狀表格和varrays。
使用集合的一般步驟如下:
必須定義所需類型的集合。這可以在SPL程式的聲明部分中完成,這將導致只能在該程式中訪問的本地類型。對於巢狀表格和varray類型,也可以使用CREATETYPE命令來完成,該命令建立一個持久的獨立類型,可以由資料庫中的任何SPL程式引用。
聲明了集合類型的變數。如果沒有作為變數聲明的一部分進行賦值,那麼與聲明的變數關聯的集合此時將被指示為未初始化。
巢狀表格和varray的未初始化集合為null。null集合尚不存在。通常,如果對null集合調用集合方法,則會引發COLLECTION_IS_NULL異常。
存在未初始化的關聯陣列集合,但沒有元素。沒有元素的現有集合稱為空白集合。
要初始化null集合,必須將其變為空白集合或為其賦予一個非null值。通常,null集合使用其建構函式進行初始化。
要將元素添加到空關聯陣列,只需為其鍵指定值即可。對於巢狀表格和varray,通常使用其建構函式將初始值賦予巢狀表格或varray。對於巢狀表格和varray,隨後使用EXTEND方法將集合增長到超出建構函式確定的初始大小。
以下各節介紹了每種集合類型的具體過程。