アンカー・データ・タイプのフィーチャー

アンカー・タイプは、列、グローバル変数、SQL 変数、SQL パラメーター、または表やビューの行などの SQL オブジェクトをベースとするデータ・タイプを定義します。

アンカー・タイプ定義を使用して定義されたデータ・タイプは、アンカー付けされた先のオブジェクトへの従属関係を維持します。 アンカー・オブジェクトのデータ・タイプを変更すると、アンカー・データ・タイプに影響を与えます。 表またはビューの行にアンカー付けした場合、アンカー・データ・タイプはアンカー表またはアンカー・ビューの列によって定義されるフィールド付きの ROW となります。

このデータ・タイプは、変数に他のオブジェクト (表内の列など) と同じデータ・タイプを持たせる必要があるものの、対象のデータ・タイプを正確に把握していない場合に変数を宣言するときに役立ちます。

アンカー・データ・タイプは、以下のいずれかと同じタイプにできます。
  • 表内の行
  • ビュー内の行
  • カーソル変数行定義
  • 表内の列
  • ビュー内の列
  • ローカル変数。ローカル・カーソル変数または行変数を含む
  • グローバル変数
アンカー・データ・タイプを指定できるのは、以下のいずれかを宣言または作成した場合だけです。
  • SQL プロシージャー内のローカル変数 (行変数を含む)
  • コンパイル済み SQL 関数内のローカル変数 (行変数を含む)
  • ルーチン・パラメーター
  • CREATE TYPE ステートメントを使用したユーザー定義カーソル・データ・タイプ。
    • DECLARE CURSOR ステートメントで参照することはできません。
  • 関数からの戻りデータ・タイプ
  • グローバル変数
アンカー・データ・タイプを定義するには、ANCHOR DATA TYPE TO 節 (または短縮形の ANCHOR 節) を指定して、データ・タイプを指定するようにします。 アンカー・データ・タイプが行データ・タイプの場合、ANCHOR ROW OF 節または、そのいずれかの同義語を指定する必要があります。 こうした節は、以下のステートメントでサポートされています。
  • DECLARE
  • CREATE TYPE
  • CREATE VARIABLE
    • 今回のバージョンでは、グローバル変数をアンカー付けできるのは、他のグローバル変数、表内の列、またはビュー内の列に限られます。