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

PolarDB:パッケージで定義されているコレクション型

最終更新日:May 30, 2024

パッケージでは、可変長配列、ネストされたテーブル、および連想配列を定義できます。

使用上の注意

パッケージで定義されているコレクションの型は、システムテーブルに保持されます。 パッケージが削除されると、コレクションの種類も削除されます。

パッケージコレクション型とローカルコレクション型の間の変換の次の例を参照してください。

パッケージpkgを作成または交換する
  タイプ番号リストは番号のテーブルです;
  PROCEDUREプリント (NumberList);
END pkg;

パッケージ本体pkgを作成または交換する
  PROCEDURE print (nums NumberList) IS
  BEGIN
    FOR i IN nums.FIRST .. nums.LAST LOOP
      RAISE NOTICE '%' 、nums(i);
    END LOOP;
  エンド;
エンド;

DECLARE
  タイプCharListはVARCHAR(10) のテーブルです;
  n1 pkg.NumberList := pkg.NumberList(1,2); -- パッケージコレクションタイプを使用します。
  n2 CharList := CharList('3','4'); -- ローカルコレクションタイプを使用します。
BEGIN
  pkg.print(n1); -- パッケージコレクション型の変数を渡します。
  pkg.print(n2); -- ローカルコレクション型の変数を渡します。 型変換は、要素の型に基づいて実行されます。
エンド; 

サンプル結果:

通知: 1
通知: 2
通知: 3
通知: 4
行う 

パッケージコレクション型とグローバルコレクション型の間の変換の次の例を参照してください。

-- グローバルコレクションタイプを宣言します。
CREATEまたはREPLACE TYPE NumListは番号のテーブルです。-- 前の例のパッケージプロシージャを使用します。
DECLARE
  n NumList := NumList(5,6);
開始
  pkg.print(n);
エンド; 

サンプル結果:

通知: 5
通知: 6
行う