ADMINTEMPCOLUMNS 管理ビューおよび ADMIN_GET_TEMP_TABLES 表関数 - 一時表の列情報を取得する

ADMINTEMPCOLUMNS 管理ビューおよび ADMIN_GET_TEMP_COLUMNS 表関数は、作成済み一時表および宣言済み一時表の列属性に関する情報を取得する方法を提供します。

カタログ・ビューには作成済み一時表のインスタンスの列属性情報が含まれますが、宣言済み一時表の表属性情報は含まれません。

管理ビューまたは表関数のどちらを使用しているかによって、以下のいずれかのセクションを参照してください。

ADMINTEMPCOLUMNS 管理ビュー

ADMINTEMPCOLUMNS 管理ビューは、作成済み一時表および宣言済み一時表のインスタンスの列属性に関する情報を戻します。

スキーマは SYSIBMADM です。

戻すことができる情報の全リストについては、ADMINTEMPCOLUMNS 管理ビューおよび ADMIN_GET_TEMP_COLUMNS で戻される情報の表を参照してください。

許可

以下のいずれかの権限が必要です。
  • ADMINTEMPCOLUMNS 管理ビューに対する SELECT 特権
  • ADMINTEMPCOLUMNS 管理ビューに対する CONTROL 特権
  • DATAACCESS 権限
  • DBADM 権限
  • SQLADM 権限
この表関数を使用するには、以下のいずれかが必要です。
  • ADMIN_GET_TEMP_COLUMNS 表関数に対する EXECUTE 特権
  • DATAACCESS 権限

デフォルトの PUBLIC 特権

制限のないデータベースでは、このビューが自動的に作成されると、SELECT 特権が PUBLIC に付与されます。

例 1: データベースに現在存在する作成済み一時表およびすべての宣言済み一時表のすべてのインスタンスの列属性に関する情報を戻します。

SELECT * FROM SYSIBMADM.ADMINTEMPCOLUMNS
例 2: データベースでアクティブになっているどの一時表がユーザー定義のデータ・タイプ USMONEY を使用しているかを判別します。
SELECT APPLICATION_HANDLE, TABSCHEMA, TABNAME
   FROM SYSIBMADM.ADMINTEMPCOLUMNS 
   WHERE TYPENAME = 'USMONEY'
例 3: SYSTEM_USER で宣言されたすべての宣言済み一時表の表スキーマ、表名、および列名を取得します。
SELECT T.TABSCHEMA, T.TABNAME, C.COLNAME 
   FROM SYSIBMADM.ADMINTEMPCOLUMNS C, SYSIBMADM.ADMINTEMPTABLES T 
   WHERE T.TEMPTABTYPE = 'D' 
   AND T.INSTANTIATOR = SYSTEM_USER
   AND T.TABSCHEMA = C.TABSCHEMA
   AND T.TABNAME = C.TABNAME

ADMIN_GET_TEMP_COLUMNS 表関数

ADMIN_GET_TEMP_TABLES 表関数は ADMINTEMPCOLUMNS 管理ビューと同じ情報を戻しますが、この関数ではスキーマ名および表名を指定することが可能です。

戻すことができる情報の全リストについては、ADMINTEMPCOLUMNS 管理ビューおよび ADMIN_GET_TEMP_COLUMNS で戻される情報の表を参照してください。

構文

構文図を読む構文図をスキップするADMIN_GET_TEMP_COLUMNS(application_handle ,tabschema,tabname)

スキーマは SYSPROC です。

表関数パラメーター

application_handle
アプリケーション・ハンドルを指定する、タイプ BIGINT の入力引数。application_handle が指定されている場合、指定された接続に関するデータのみが戻されます。application_handle が NULL である場合、すべての接続に関するデータが戻されます。
tabschema
スキーマ名を指定する、タイプ VARCHAR(128) の入力引数。
tabname
作成済み一時表の名前または宣言済み一時表の名前を指定する、タイプ VARCHAR(128) の入力引数。

許可

以下のいずれかの権限が必要です。
  • ADMIN_GET_TEMP_COLUMNS 表関数に対する EXECUTE 特権
  • DATAACCESS 権限
  • DBADM 権限
  • SQLADM 権限

デフォルトの PUBLIC 特権

制限のないデータベースでは、この関数が自動的に作成されると、EXECUTE 特権が PUBLIC に付与されます。

例 1: 現行接続の宣言済み一時表 TEMPEMPLOYEE の列情報を取得します。
SELECT * 
   FROM TABLE (
      SYSPROC.ADMIN_GET_TEMP_COLUMNS(
         APPLICATION_ID(), 'SESSION', 'TEMPEMPLOYEE')) 
   AS T

使用上の注意

  • tabschematabname の両方が指定される場合、その特定の一時表の情報のみが戻されます。
  • tabschema が指定され、tabname が NULL または空ストリング (") の場合、指定したスキーマのすべての表に関する情報が戻されます。
  • tabschema が NULL または空ストリング (") で、tabname が指定される場合、エラーは戻されます。 特定の一時表の情報を取り出すには、その表がスキーマと表名の両方によって識別されることが必要です。
  • tabschematabname の両方が NULL または空ストリング (") の場合、application_handle の値に応じて、特定の接続 (またはすべての接続) のすべての一時表に関する情報が戻されます。
  • tabschema または tabname が存在しないか、tabname が一時表名と一致しないか、あるいは識別された一時表のインスタンスがデータベースに存在しない場合、空の結果セットが戻されます。

戻される情報

表 1. ADMINTEMPCOLUMNS 管理ビューおよび ADMIN_GET_TEMP_COLUMNS で戻される情報
列名 データ・タイプ 説明
APPLICATION_HANDLE BIGINT application_handle - アプリケーション・ハンドル・モニター・エレメント
APPLICATION_NAME VARCHAR(256) appl_name - アプリケーション名モニター・エレメント
TABSCHEMA VARCHAR(128) table_schema - 表スキーマ名モニター・エレメント
TABNAME VARCHAR(128) table_name - 表名モニター・エレメント
COLNAME VARCHAR(128) 列の名前。
COLNO SMALLINT 表の中のこの列の番号 (0 から始まる)。
TYPESCHEMA VARCHAR(128) 列のデータ・タイプのスキーマ名。
TYPENAME VARCHAR(128) 列のデータ・タイプの非修飾名。
LENGTH INTEGER データの最大長。 特殊タイプの場合は 0。 LENGTH 列は DECIMAL フィールドの精度を示し、10 進浮動小数点列に必要なストレージのバイト数を示します。つまり、DECFLOAT(16) の場合には 8 列、DECFLOAT(34) の場合には 16 列です。
SCALE SMALLINT 列タイプが DECIMAL の場合は位取りで、列タイプが TIMESTAMP の場合には秒の小数部分の桁数。その他の場合には 0。
DEFAULT VARCHAR(254) 列のデータ・タイプに適した定数、特殊レジスター、または cast 関数で表された表の列のデフォルト値。 キーワード NULL の場合もあります。 値は、デフォルト値として指定された値から変換されることがあります。 例えば、日時の定数は ISO フォーマットで表示され、cast 関数名はスキーマ名で修飾され、ID は区切り文字で区切られます。 DEFAULT 節が指定されていないか、または列がビューの列の場合は、NULL 値になります。
NULLS CHAR(1) 列の NULL 可能性属性。
  • Y = 列は NULL 可能。
  • N = 列は NULL 不可。
式または関数から派生したビューの列の場合、値は N である可能性があります。それでも、このビューを使用するステートメントが処理され、 算術計算エラーの警告を出された場合は、この列に NULL 値が入ります。
CODEPAGE SMALLINT この列のデータに使用されるコード・ページ。列が FOR BIT DATA として定義されている場合、またはストリング・タイプではない場合は 0。
LOGGED CHAR(1) LOB タイプまたは LOB に基づく特殊タイプの列だけに適用されます。それ以外はブランクです。
  • Y = 列のログ記録を取る。
  • N = 列のログ記録を取らない。
COMPACT CHAR(1) LOB タイプまたは LOB に基づく特殊タイプの列だけに適用されます。それ以外はブランクです。
  • Y = ストレージ内で列を圧縮する。
  • N = 列を圧縮しない。
INLINE_LENGTH INTEGER 基本表に保管できる XML 文書または構造化タイプのインスタンスの内部表記の最大サイズ (バイト数)。適用されない場合には 0。
IDENTITY CHAR(1)
  • Y = ID 列。
  • N = ID 列ではない。
GENERATED CHAR(1) 生成される列の型。
  • A = 列の値が常に生成される
  • D = 列の値がデフォルトで生成される
  • ブランク = 列は生成されない