32.16. element_types

La vue element_types contient les descripteurs de type de données des éléments de tableaux. Lorsqu'une colonne de table, domaine, paramètre de fonction ou code de retour de fonction est définie comme un type tableau, la vue respective du schéma d'informations contient seulement ARRAY dans la colonne data_type. Pour obtenir des informations sur le type d'élément du tableau, vous pouvez joindre la vue respective avec cette vue. Par exemple, pour afficher les colonnes d'une table avec les types de données et les types d'élément de tableau, si applicable. Vous pouvez faire

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.array_type_identifier))
WHERE c.table_schema = '...' AND c.table_name = '...'
ORDER BY c.ordinal_position;

Cette vue inclut seulement les objets auxquels l'utilisateur courant a accès en étant le propriétaire ou en disposant de quelques droits.

Tableau 32-14. Colonnes de element_types

NomType de donnéesDescription
object_catalogsql_identifier Nom de la base de données contenant l'objet qui utilise le tableau en cours de description (toujours la base de données courante)
object_schemasql_identifier Nom du schéma contenant l'objet utilisant le tableau en cours de description
object_namesql_identifier Nom de l'objet utilisant le tableau en cours de description
object_typecharacter_data Le type de l'objet utilisant le tableau en cours de description : il fait partie de TABLE (le tableau est utilisé par une colonne de cette table), DOMAIN (le tableau est utilisé par ce domaine), ROUTINE (le tableau est utilisé par un paramètre ou le type du code de retour de cette fonction).
array_type_identifiersql_identifier L'identifiant du descripteur de type de données du tableau en cours de description. Utilisez ceci pour joindre avec les colonnes de dtd_identifier, les autres vues du schéma d'informations.
data_typecharacter_data Le type de données des éléments du tableau s'il s'agit d'un type interne, sinon USER-DEFINED (dans ce cas, le type est identifié comme udt_name et dispose des colonnes associées).
character_maximum_lengthcardinal_numberToujours NULL, car cette information n'est pas appliquée aux types de données d'éléments de tableau dans PostgreSQL
character_octet_lengthcardinal_numberToujours NULL, car cette information n'est pas appliquée aux types de données d'éléments de tableau dans PostgreSQL
character_set_catalogsql_identifierS'applique à une fonctionnalité non disponible dans PostgreSQL.
character_set_schemasql_identifierS'applique à une fonctionnalité non disponible dans PostgreSQL.
character_set_namesql_identifierS'applique à une fonctionnalité non disponible dans PostgreSQL.
collation_catalogsql_identifierS'applique à une fonctionnalité non disponible dans PostgreSQL.
collation_schemasql_identifierS'applique à une fonctionnalité non disponible dans PostgreSQL.
collation_namesql_identifierS'applique à une fonctionnalité non disponible dans PostgreSQL.
numeric_precisioncardinal_numberToujours NULL, car cette information n'est pas appliquée aux types de données d'éléments de tableau dans PostgreSQL
numeric_precision_radixcardinal_numberToujours NULL, car cette information n'est pas appliquée aux types de données d'éléments de tableau dans PostgreSQL
numeric_scalecardinal_numberToujours NULL, car cette information n'est pas appliquée aux types de données d'éléments de tableau dans PostgreSQL
datetime_precisioncardinal_numberToujours NULL, car cette information n'est pas appliquée aux types de données d'éléments de tableau dans PostgreSQL
interval_typecharacter_dataToujours NULL, car cette information n'est pas appliquée aux types de données d'éléments de tableau dans PostgreSQL
interval_precisioncharacter_dataToujours NULL, car cette information n'est pas appliquée aux types de données d'éléments de tableau dans PostgreSQL
domain_defaultcharacter_dataPas encore implémenté
udt_catalogsql_identifier Nom de la base de données pour lequel le type de données est défini (toujours dans la base de données courante)
udt_schemasql_identifier Nom du schéma dans lequel sont définis les types de données des éléments
udt_namesql_identifier Nom du type de données des éléments
scope_catalogsql_identifierS'applique à une fonctionnalité non disponible dans PostgreSQL.
scope_schemasql_identifierS'applique à une fonctionnalité non disponible dans PostgreSQL.
scope_namesql_identifierS'applique à une fonctionnalité non disponible dans PostgreSQL.
maximum_cardinalitycardinal_numberToujours NULL, car les tableaux ont une cardinalité maximum illimitée dans PostgreSQL
dtd_identifiersql_identifier Un identifiant de données de l'élément. Ce n'est pas utile actuellement.