Oracle 11g Release 1 (11.1) PL/SQL Collection 方法

來源:互聯網
上載者:User

Oracle 11g Release 1 (11.1) PL/SQL Collection 方法
本文內容

  • EXISTS 方法
  • COUNT 方法
  • LIMIT 方法
  • FIRST 和 LAST 方法
  • PRIOR 和 NEXT 方法
  • EXTEND 方法
  • TRIM 方法
  • DELETE 方法

 

collection 方法是一個內建的 PL/SQL 子程式,可以返回 collection 資訊,或是在 collection 上執行操作,很方便。

你可以通過點記號來調用 collection 方法。文法如所示:

圖1 Collection Method 調用

不能在 SQL 陳述式調用 collection 方法。

collection 為空白時,你只能使用 EXISTS 方法,使用其他方法都會拋出 COLLECTION_IS_NULL 異常。

 

EXISTS 方法

collection 中第 n 個元素存在,則 EXISTS(n) 返回 TRUE;否則,返回 FALSEEXISTS 方法結合 DELETE 方法,會把 collection 變成稀疏 nested tables(sparse nested tables)。通過 EXISTS 方法,避免引用一個不存在的元素,從而產生異常。當傳遞一個超出範圍的標值時,EXISTS 方法返回 FALSE,而不是產生 SUBSCRIPT_OUTSIDE_LIMIT 異常。

樣本1:示範檢查元素是否存在

DECLARE
   TYPE NumList IS TABLE OF INTEGER;
   n NumList := NumList(1,3,5,7);
BEGIN
   n.DELETE(2); -- Delete the second element
   IF n.EXISTS(1) THEN
      DBMS_OUTPUT.PUT_LINE('OK, element #1 exists.');
   END IF;
   IF n.EXISTS(2) = FALSE THEN
      DBMS_OUTPUT.PUT_LINE('OK, element #2 was deleted.');
   END IF;
   IF n.EXISTS(99) = FALSE THEN
      DBMS_OUTPUT.PUT_LINE('OK, element #99 does not exist at all.');
   END IF;
END;
/

COUNT 方法

COUNT 返回 collection 中元素的當前數量。當你不知道 collection 中有多少元素時,很有用。例如,當你把擷取的表的一列,放到一個 nested table 時,元素的數量取決於結果集的大小。

對於 varrayCOUNT 總是等於 LAST。通過 EXTENDTRIM 方法,你可以增加或減少 varray 的大小,因此,COUNT 值是變化的,取決於 LIMIT 方法的值。

對於 nested tablesCOUNT 方法通常等於 LAST 方法。然而,若你從 nested table 刪除元素,則 COUNT 小於 LAST。當你整理元素時,COUNT 會忽略已刪除的元素。使用不帶參數的 DELETE 方法會設定 COUNT0

備忘:FIRST 方法和 LAST 方法返回最大和最小的索引數。後面說明。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.