collection 方法是一個內(nèi)置的 PL/SQL 子程序,可以返回 collection 信息,或是在 collection 上執(zhí)行操作,很方便。你可以通過點記
本文內(nèi)容
collection 方法是一個內(nèi)置的 PL/SQL 子程序,可以返回 collection 信息,或是在 collection 上執(zhí)行操作,很方便。
你可以通過點記號來調(diào)用 collection 方法。語法如下圖所示:
圖1 Collection Method 調(diào)用
不能在 SQL 語句調(diào)用 collection 方法。
當 collection 為空時,你只能使用 EXISTS 方法,使用其他方法都會拋出 COLLECTION_IS_NULL 異常。
EXISTS 方法若 collection 中第 n 個元素存在,則 EXISTS(n) 返回 TRUE;否則,返回 FALSE。EXISTS 方法結(jié)合 DELETE 方法,會把 collection 變成稀疏 nested tables(sparse nested tables)。通過 EXISTS 方法,避免引用一個不存在的元素,從而產(chǎn)生異常。當傳遞一個超出范圍的標值時,EXISTS 方法返回 FALSE,而不是產(chǎn)生 SUBSCRIPT_OUTSIDE_LIMIT 異常。
示例1:演示檢查元素是否存在
; n NumList := NumList(1,3,5,7); DBMS_OUTPUT.PUT_LINE( DBMS_OUTPUT.PUT_LINE('OK, element #99 does not exist at all.'); END IF;END;/
COUNT 方法COUNT 返回 collection 中元素的當前數(shù)量。當你不知道 collection 中有多少元素時,很有用。例如,當你把獲取的表的一列,放到一個 nested table 時,元素的數(shù)量取決于結(jié)果集的大小。
對于 varray,COUNT 總是等于 LAST。通過 EXTEND 和 TRIM 方法,你可以增加或減少 varray 的大小,,因此,COUNT 值是變化的,取決于 LIMIT 方法的值。
對于 nested tables,COUNT 方法通常等于 LAST 方法。然而,若你從 nested table 刪除元素,則 COUNT 小于 LAST。當你整理元素時,COUNT 會忽略已刪除的元素。使用不帶參數(shù)的 DELETE 方法會設(shè)置 COUNT 為 0。
備注:FIRST 方法和 LAST 方法返回最大和最小的索引數(shù)。后面說明。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com