On this page
37.23. element_types
视图element_types
包含数组元素的数据类型 Descriptors。当表列,复合类型属性,域,函数参数或函数返回值定义为数组类型时,相应的信息模式视图在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
列
Name | Data Type | Description |
---|---|---|
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 |
描述的数组的数据类型 Descriptors 的标识符。使用它可以与其他信息架构视图的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 |
元素的数据类型 Descriptors 的标识符。目前这没有用。 |