OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

トランザクション処理、分析、AIワークロードに最適な分散データベース

デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
アイコン

OceanBaseデータベース

V4.3.5

    OceanBase logo

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについて法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBaseデータベース
    3. V4.3.5
    アイコンOceanBaseデータベース
    V 4.3.5
    • V 4.3.5

    COUNTメソッド

    最終更新日:2026-04-15 06:09:05  更新
    シェア
    このページの内容
    変動配列での使用
    ネストテーブルでの使用

    折りたたみ

    シェア

    COUNTは、コレクション内の要素数を返します(削除された要素は無視されます。ただし、DELETE操作でプレースホルダーが保持されている場合は例外です)。

    適用対象

    この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。

    変動配列での使用

    変動配列については、COUNTは常にLASTと等しくなります。EXTENDまたはTRIMメソッドを使用して変動配列のサイズを増減すると、COUNTの値が変更されます。

    obclient> DECLARE
      TYPE oblist IS VARRAY(10) OF INTEGER;
      t oblist := OBLIST(2,4,6,8,10);
    
      PROCEDURE print_count_and_last IS
      BEGIN
        DBMS_OUTPUT.PUT('t.COUNT = ' || t.COUNT || ', ');
        DBMS_OUTPUT.PUT_LINE('t.LAST = ' || t.LAST);
      END  print_count_and_last;
    
    BEGIN
      print_count_and_last;
    
      t.EXTEND(2);
      print_count_and_last;
    
      t.TRIM(4);
      print_count_and_last;
    END;
    /
    Query OK, 0 rows affected
    
    t.COUNT = 5, t.LAST = 5
    t.COUNT = 7, t.LAST = 7
    t.COUNT = 3, t.LAST = 3
    

    上記の例では、変動配列変数を宣言し、初期化して4つの要素を代入します。それぞれEXTEND(3)とTRIM(5)を実行した後、変動配列のCOUNTとLASTの値を出力します。

    ネストテーブルでの使用

    ネストテーブルについては、COUNTはLASTと等しくなります。ただし、ネストテーブルの途中から要素を削除する場合は、COUNTはLASTより小さくなります。

    obclient> DECLARE
      TYPE oblist IS TABLE OF INTEGER;
      t oblist := OBLIST(2,4,6,8,10);
    
      PROCEDURE print_count_and_last IS
      BEGIN
        DBMS_OUTPUT.PUT('t.COUNT = ' || t.COUNT || ', ');
        DBMS_OUTPUT.PUT_LINE('t.LAST = ' || t.LAST);
      END  print_count_and_last;
    
    BEGIN
      print_count_and_last;
    
      t.EXTEND(2);     --末尾に2つのNULL要素を追加
      print_count_and_last;
    
      t.DELETE(3);     --3番目の要素を削除
      print_count_and_last;
    
      FOR i IN 1..8 LOOP
        IF t.EXISTS(i) THEN
          IF t(i) IS NOT NULL THEN
            DBMS_OUTPUT.PUT_LINE('t(' || i || ') = ' || t(i));
          ELSE
            DBMS_OUTPUT.PUT_LINE('t(' || i || ') = NULL');
          END IF;
        ELSE
          DBMS_OUTPUT.PUT_LINE('t(' || i || ') does not exist');
        END IF;
      END LOOP;
    END;
    /
    Query OK, 0 rows affected
    
    t.COUNT = 5, t.LAST = 5
    t.COUNT = 7, t.LAST = 7
    t.COUNT = 6, t.LAST = 7
    t(1) = 2
    t(2) = 4
    t(3) does not exist
    t(4) = 8
    t(5) = 10
    t(6) = NULL
    t(7) = NULL
    t(8) does not exist
    

    上記の例では、ネストテーブル変数を宣言し、初期化して5つの要素を代入します。その後、末尾に2つのNULL要素を追加し、3番目の要素を削除して、ネストテーブルのCOUNTとLASTの値を更新します。最後に、例の1番目から8番目までの要素の状態を出力します。

    前のトピック

    FIRSTとLASTメソッド
    最後

    次のトピック

    LIMITメソッド
    次
    このページの内容
    変動配列での使用
    ネストテーブルでの使用