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.TABNAMEADMIN_GET_TEMP_COLUMNS 表関数
ADMIN_GET_TEMP_TABLES 表関数は ADMINTEMPCOLUMNS 管理ビューと同じ情報を戻しますが、この関数ではスキーマ名および表名を指定することが可能です。
戻すことができる情報の全リストについては、ADMINTEMPCOLUMNS 管理ビューおよび ADMIN_GET_TEMP_COLUMNS で戻される情報の表を参照してください。
構文
スキーマは 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使用上の注意
- tabschema と tabname の両方が指定される場合、その特定の一時表の情報のみが戻されます。
- tabschema が指定され、tabname が NULL または空ストリング (") の場合、指定したスキーマのすべての表に関する情報が戻されます。
- tabschema が NULL または空ストリング (") で、tabname が指定される場合、エラーは戻されます。 特定の一時表の情報を取り出すには、その表がスキーマと表名の両方によって識別されることが必要です。
- tabschema と tabname の両方が NULL または空ストリング (") の場合、application_handle の値に応じて、特定の接続 (またはすべての接続) のすべての一時表に関する情報が戻されます。
- tabschema または tabname が存在しないか、tabname が一時表名と一致しないか、あるいは識別された一時表のインスタンスがデータベースに存在しない場合、空の結果セットが戻されます。
戻される情報
| 列名 | データ・タイプ | 説明 |
|---|---|---|
| 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 可能性属性。
|
| CODEPAGE | SMALLINT | この列のデータに使用されるコード・ページ。列が FOR BIT DATA として定義されている場合、またはストリング・タイプではない場合は 0。 |
| LOGGED | CHAR(1) | LOB タイプまたは LOB に基づく特殊タイプの列だけに適用されます。それ以外はブランクです。
|
| COMPACT | CHAR(1) | LOB タイプまたは LOB に基づく特殊タイプの列だけに適用されます。それ以外はブランクです。
|
| INLINE_LENGTH | INTEGER | 基本表に保管できる XML 文書または構造化タイプのインスタンスの内部表記の最大サイズ (バイト数)。適用されない場合には 0。 |
| IDENTITY | CHAR(1) |
|
| GENERATED | CHAR(1) | 生成される列の型。
|
