# 37.24.元素类型

风景元素类型包含数组元素的数据类型描述符。当表列、复合类型属性、域、函数参数或函数返回值定义为数组类型时,相应的信息模式视图仅包含大批在列数据类型.要获取有关数组元素类型的信息,您可以将相应的视图与此视图连接起来。例如,要显示具有数据类型和数组元素类型的表的列,如果适用,您可以执行以下操作:

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.22.元素类型

列类型

描述
对象目录 sql_identifier

包含使用所描述数组的对象的数据库的名称(始终为当前数据库)
对象模式 sql_identifier

包含使用正在描述的数组的对象的模式的名称
对象名 sql_identifier

使用正在描述的数组的对象的名称
对象类型 字符数据

使用正在描述的数组的对象的类型:其中之一桌子(该数组由该表的一列使用),用户定义类型(该数组由该复合类型的属性使用),领域(该数组由该域使用),常规(该数组由参数或该函数的返回数据类型使用)。
集合类型标识符 sql_identifier

正在描述的数组的数据类型描述符的标识符。使用它来加入dtd_identifier其他信息模式视图的列。
数据类型 字符数据

数组元素的数据类型,如果是内置类型,否则用户自定义(在这种情况下,类型在udt_name和相关的列)。
character_maximum_length 基数

始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
character_octet_length 基数

始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
字符集目录 sql_identifier

适用于 PostgreSQL 中不可用的功能
character_set_schema sql_identifier

适用于 PostgreSQL 中不可用的功能
字符集名称 sql_identifier

适用于 PostgreSQL 中不可用的功能
collat​​ion_catalog sql_identifier

包含元素类型排序规则的数据库的名称(始终为当前数据库),如果默认为 null 或元素的数据类型不可排序
collat​​ion_schema sql_identifier

包含元素类型排序规则的模式名称,默认为 null 或元素的数据类型不可排序
collat​​ion_name sql_identifier

元素类型的排序规则名称,默认为 null 或者元素的数据类型不可排序
数字精度 基数

始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
numeric_precision_radix 基数

始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
numeric_scale 基数

始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
日期时间精度 基数

始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
间隔类型 字符数据

始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
间隔精度 基数

始终为 null,因为此信息不适用于 PostgreSQL 中的数组元素数据类型
domain_default 字符数据

尚未实现
udt_catalog sql_identifier

定义元素数据类型的数据库的名称(始终为当前数据库)
udt_schema sql_identifier

元素的数据类型在其中定义的模式的名称
udt_name sql_identifier

元素的数据类型名称
范围目录 sql_identifier

适用于 PostgreSQL 中不可用的功能
scope_schema sql_identifier

适用于 PostgreSQL 中不可用的功能
范围名称 sql_identifier

适用于 PostgreSQL 中不可用的功能
最大基数 基数

始终为 null,因为数组在 PostgreSQL 中始终具有无限的最大基数
dtd_identifier sql_identifier

元素的数据类型描述符的标识符。这目前没有用。