すべてのプロダクト
Search
ドキュメントセンター

PolarDB:LIMIT

最終更新日:Mar 29, 2026

LIMIT は、コレクションが保持できる要素の最大数を返します。コレクションに最大数が定義されていない場合、LIMITNULL を返します。最大サイズを持つのは VARRAY のみです。

構文

collection.LIMIT

collection はコレクションの名前です。

コレクションタイプ別の動作

コレクションタイプ状態戻り値
VARRAY初期化済みVARRAY の型宣言で定義された最大サイズ
VARRAY未初期化 (NULL)例外
連想配列初期化済みNULL
ネストテーブル初期化済みNULL
ネストテーブル未初期化 (NULL)例外

次の例は、3 つのコレクションタイプすべてにおいて LIMITCOUNT の動作がどのように異なるかを示しています。LIMIT は型宣言で定義された最大容量を反映し、COUNT は現在格納されている要素の数を反映します。

DECLARE
  TYPE aa_type IS TABLE OF INTEGER INDEX BY PLS_INTEGER;
  aa aa_type;                         -- 連想配列

  TYPE va_type IS VARRAY(4) OF INTEGER;
  va va_type := va_type(2, 4);        -- 最大サイズ 4、要素数 2 の VARRAY

  TYPE nt_type IS TABLE OF INTEGER;
  nt nt_type := nt_type(1, 3, 5);    -- 要素数 3 のネストテーブル

BEGIN
  aa(1) := 3; aa(2) := 6; aa(3) := 9; aa(4) := 12;

  DBMS_OUTPUT.PUT_LINE('aa.COUNT = ' || aa.COUNT);           -- 4
  DBMS_OUTPUT.PUT_LINE('aa.LIMIT = ' || NVL(TO_CHAR(aa.LIMIT), 'NULL'));  -- NULL

  DBMS_OUTPUT.PUT_LINE('va.COUNT = ' || va.COUNT);           -- 2
  DBMS_OUTPUT.PUT_LINE('va.LIMIT = ' || NVL(TO_CHAR(va.LIMIT), 'NULL'));  -- 4

  DBMS_OUTPUT.PUT_LINE('nt.COUNT = ' || nt.COUNT);           -- 3
  DBMS_OUTPUT.PUT_LINE('nt.LIMIT = ' || NVL(TO_CHAR(nt.LIMIT), 'NULL'));  -- NULL
END;
/

出力:

aa.COUNT = 4
aa.LIMIT = NULL
va.COUNT = 2
va.LIMIT = 4
nt.COUNT = 3
nt.LIMIT = NULL

va.LIMIT2 (現在のカウント) ではなく、4 (宣言された最大値) を返します。連想配列とネストテーブルには定義されたサイズの上限がないため、aa.LIMITnt.LIMITNULL を返します。