element_types
element_types
には、配列の要素のデータ型記述子が含まれます。
テーブル列、複合データ型属性、ドメイン、関数パラメータ、関数の戻り値が配列型であると宣言された場合、
情報スキーマの各ビューでは、data_type
列にARRAY
だけが含まれます。
配列の要素の型についての情報を取り出すには、各ビューとこのビューを結合することで可能です。
例えば、テーブルの列のデータ型と、もし適切ならば、配列の要素型を表示するには、以下のように行います。
SELECT c.column_name, c.data_type, e.data_type AS element_type FROM information_schema.columns c LEFT JOIN information_schema.element_types e ON ((c.table_catalog, c.table_schema, c.table_name, 'TABLE', c.dtd_identifier) = (e.object_catalog, e.object_schema, e.object_name, e.object_type, e.collection_type_identifier)) WHERE c.table_schema = '...' AND c.table_name = '...' ORDER BY c.ordinal_position;
このビューは、所有者である、適切な権限を持っているといった方法で、現在のユーザがアクセスできるオブジェクトのみが含まれます。
表37.21 element_types
の列
名前 | データ型 | 説明 |
---|---|---|
object_catalog | sql_identifier | 記述される配列を使用するオブジェクトを持つデータベースの名前です (常に現在のデータベースです)。 |
object_schema | sql_identifier | 記述される配列を使用するオブジェクトを持つスキーマの名前です。 |
object_name | sql_identifier | 記述される配列を使用するオブジェクトの名前です。 |
object_type | character_data |
記述される配列を使用するオブジェクトの種類です。
TABLE (その配列がテーブルの列によって使用される)、USER-DEFINED TYPE (その配列が複合データ型の属性によって使用される)、DOMAIN (その配列がドメインによって使用される)、ROUTINE (その配列が関数のパラメータ、もしくは戻り値の型によって使用される)のいずれかです。
|
collection_type_identifier | sql_identifier |
記述される配列のデータ型記述子の識別子です。他の情報スキーマビューのdtd_identifier 列と結合するのに使用してください。
|
data_type | character_data |
組み込み型の場合は配列要素のデータ型です。さもなくば、USER-DEFINED です
(この場合、型はudt_name と関連する列で識別されます)。
|
character_maximum_length | cardinal_number | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型には当てはまらないからです。 |
character_octet_length | cardinal_number | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型には当てはまらないからです。 |
character_set_catalog | sql_identifier | PostgreSQLで利用できない機能に適用されるものです。 |
character_set_schema | sql_identifier | PostgreSQLで利用できない機能に適用されるものです。 |
character_set_name | sql_identifier | PostgreSQLで利用できない機能に適用されるものです。 |
collation_catalog | sql_identifier | 要素データ型の照合を含むデータベース(常に現在のデータベース)の名前で、デフォルトであるか要素のデータ型が照合可能でない場合はNULLです。 |
collation_schema | sql_identifier | 要素データ型の照合を含むスキーマの名前で、デフォルトであるか要素のデータ型が照合可能でない場合はNULLです。 |
collation_name | sql_identifier | 要素データ型の照合の名前で、デフォルトであるか要素のデータ型が照合可能でない場合はNULLです。 |
numeric_precision | cardinal_number | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型には当てはまらないからです。 |
numeric_precision_radix | cardinal_number | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型には当てはまらないからです。 |
numeric_scale | cardinal_number | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型には当てはまらないからです。 |
datetime_precision | cardinal_number | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型には当てはまらないからです。 |
interval_type | character_data | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型には当てはまらないからです。 |
interval_precision | cardinal_number | 常にNULLです。 この情報は、PostgreSQLにおける配列要素のデータ型には当てはまらないからです。 |
domain_default | character_data | 未実装です。 |
udt_catalog | sql_identifier | 要素のデータ型を定義したデータベースの名前です (常に現在のデータベースです)。 |
udt_schema | sql_identifier | 要素のデータ型を定義したスキーマの名前です。 |
udt_name | sql_identifier | 要素のデータ型の名前です。 |
scope_catalog | sql_identifier | PostgreSQLで利用できない機能に適用されるものです。 |
scope_schema | sql_identifier | PostgreSQLで利用できない機能に適用されるものです。 |
scope_name | sql_identifier | PostgreSQLで利用できない機能に適用されるものです。 |
maximum_cardinality | cardinal_number | 常にNULLです。 PostgreSQLでは配列の最大次数は常に無制限だからです。 |
dtd_identifier | sql_identifier | 要素のデータ型記述子の識別子です。現在は用途はありません。 |