SHOW COLUMNS

Répertorie les colonnes des tables ou des vues et les dimensions, les faits et les métriques des vues sémantiques pour lesquelles vous disposez de privilèges d’accès. Cette commande peut être utilisée pour répertorier les colonnes, les dimensions, les faits et les métriques des objets suivants :

  • La table ou la vue spécifiée.

  • Toutes les tables et vues du schéma spécifié ou du schéma actuellement utilisé.

  • Toutes les tables et vues de la base de données spécifiée ou de la base de données actuellement utilisée.

  • Toutes les tables et vues de votre compte.

Voir aussi :

DESCRIBE TABLE

Vue COLUMNS (Schéma d’information)

Syntaxe

SHOW COLUMNS [ LIKE '<pattern>' ]
             [ IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | [ TABLE ] <table_name> | VIEW | [ VIEW ] <view_name> } | APPLICATION <application_name> | APPLICATION PACKAGE <application_package_name> ]
Copy

Paramètres

LIKE '<motif>'

Filtre la sortie de commande par nom d’objet. Le filtre utilise une concordance de motif insensible à la casse avec prise en charge des caractères génériques SQL (% et _).

Par exemple, les motifs suivants donnent les mêmes résultats :

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
IN { ACCOUNT | DATABASE [ <database_name> ] | SCHEMA [ <schema_name> ] | TABLE | [ TABLE ] <table_name> | VIEW | [ VIEW ] <view_name> | APPLICATION <application_name>  | APPLICATION PACKAGE <application_package_name> }

Spécifie la portée de la commande, qui détermine si la commande liste les enregistrements uniquement pour la base de données, le schéma, la table ou la vue actuels/spécifiés, ou pour l’ensemble de votre compte :

Si vous spécifiez le mot clé ACCOUNT, la commande récupère les enregistrements de tous les schémas de toutes les bases de données du compte courant.

Si vous spécifiez le mot clé DATABASE, alors :

  • Si vous spécifiez un db_name, la commande récupère les enregistrements de tous les schémas de la base de données spécifiée.

  • Si vous ne spécifiez pas de db_name, alors :

    • S’il existe une base de données actuelle, la commande récupère les enregistrements de tous les schémas de la base de données actuelle.

    • S’il n’y a pas de base de données actuelle, la commande récupère les enregistrements de toutes les bases de données et de tous les schémas du compte.

Si vous spécifiez le mot clé SCHEMA, alors :

  • Si vous spécifiez un nom de schéma qualifié (par exemple, my_database.my_schema), la commande récupère les enregistrements de la base de données et du schéma spécifiés.

  • Si vous spécifiez un schema_name non qualifié, alors :

    • S’il existe une base de données actuelle, la commande récupère les enregistrements du schéma spécifié dans la base de données actuelle.

    • S’il n’y a pas de base de données actuelle, la commande affiche l’erreur SQL compilation error: Object does not exist, or operation cannot be performed.

  • Si vous ne spécifiez pas de schema_name, alors :

    • S’il existe une base de données actuelle, alors :

      • S’il existe un schéma actuel, la commande récupère les enregistrements pour le schéma actuel dans la base de données actuelle.

      • S’il n’y a pas de schéma actuel, la commande récupère les enregistrements de tous les schémas de la base de données actuelle.

    • S’il n’y a pas de base de données actuelle, la commande récupère les enregistrements de toutes les bases de données et de tous les schémas du compte.

Si vous spécifiez le mot clé TABLE sans table_name, alors :

  • S’il existe une base de données actuelle, alors :

    • S’il existe un schéma actuel, la commande récupère les enregistrements pour le schéma actuel dans la base de données actuelle.

    • S’il n’y a pas de schéma actuel, la commande récupère les enregistrements de tous les schémas de la base de données actuelle.

  • S’il n’y a pas de base de données actuelle, la commande récupère les enregistrements de toutes les bases de données et de tous les schémas du compte.

Si vous spécifiez un <table_name> (avec ou sans le mot clé TABLE), alors :

  • Si vous spécifiez un <table_name> entièrement qualifié (par exemple, my_database_name.my_schema_name.my_table_name), la commande récupère tous les enregistrements de la table spécifiée.

  • Si vous spécifiez un <table_name> qualifié de schéma (par exemple, my_schema_name.my_table_name), alors :

    • Si une base de données actuelle existe, la commande récupère tous les enregistrements de la table spécifiée.

    • Si aucune base de données actuelle n’existe, la commande affiche une erreur similaire à Cannot perform SHOW <object_type>. This session does not have a current database....

  • Si vous spécifiez un <table_name> non qualifié, alors :

    • Si une base de données actuelle et un schéma actuel existent, la commande récupère les enregistrements de la table spécifiée dans le schéma actuel de la base de données actuelle.

    • Si aucune base de données actuelle n’existe ou si aucun schéma actuel n’existe, la commande affiche une erreur similaire à : SQL compilation error: <objet> does not exist or not authorized..

If you specify the VIEW keyword or a view name, the rules for views parallel the rules for tables.

If you specify the APPLICATION or APPLICATION PACKAGE keywords, records for the specified Snowflake Native App Framework application or application package are returned.

Par défaut : dépend si la session dispose actuellement d’une base de données en cours d’utilisation :

  • Base de données : DATABASE est la valeur par défaut (c’est-à-dire que la commande renvoie les objets que vous pouvez visualiser dans la base de données).

  • Aucune base de données : ACCOUNT est la valeur par défaut (c’est-à-dire que la commande renvoie les objets que vous pouvez visualiser dans votre compte).

Notes sur l’utilisation

  • You can use the VIEW keyword and specify a view name for standard views, materialized views, and semantic views.

  • La commande renvoie un maximum de dix mille enregistrements pour le type d’objet spécifié, conformément aux privilèges d’accès du rôle utilisé pour exécuter la commande. Aucun enregistrement au-delà de la limite de dix mille enregistrements n’est renvoyé, même si un filtre a été appliqué.

    Pour afficher les résultats pour lesquels il existe plus de dix mille enregistrements, interrogez la vue correspondante (le cas échéant) dans Schéma d’information de Snowflake.

  • La commande ne nécessite pas l’exécution d’un entrepôt en cours d’exécution.

  • La commande ne renvoie que les objets pour lesquels le rôle actuel de l’utilisateur s’est vu accorder au moins un privilège d’accès.

  • Le privilège d’accès MANAGE GRANTS permet implicitement à son titulaire de voir tous les objets du compte. Par défaut, seuls l’administrateur du compte (utilisateurs avec le rôle ACCOUNTADMIN) et l’administrateur de sécurité (utilisateurs avec le rôle SECURITYADMIN) ont le privilège MANAGE GRANTS.

  • Pour post-traiter la sortie de cette commande, vous pouvez utiliser l’opérateur de canal (->>) ou la fonction RESULT_SCAN. Les deux constructions traitent la sortie comme un jeu de résultats que vous pouvez interroger.

    Par exemple, vous pouvez utiliser l’opérateur de canal ou la fonction RESULT_SCAN pour sélectionner des colonnes spécifiques à partir de la sortie de commande SHOW ou pour filtrer les lignes.

    Lorsque vous faites référence aux colonnes de sortie, utilisez des identificateurs entre guillemets doubles pour les noms des colonnes. Par exemple, pour sélectionner la colonne de sortie type, spécifiez SELECT "type".

    Vous devez utiliser des identificateurs entre guillemets doubles, car les noms des colonnes de sortie pour les commandes SHOW sont en minuscules. Les guillemets doubles garantissent que les noms des colonnes dans la liste SELECT ou dans la clause WHERE correspondent aux noms des colonnes dans la sortie de commande SHOW qui a été analysée.

Note

Les noms des colonnes dans la table de sortie pour la commande SHOW COLUMNS sont en minuscules (c’est-à-dire table_name, schema_name, column_name, etc.). Cependant, les valeurs dans la colonne column_name reflètent le nom de la colonne qui est stocké. Par exemple, si un nom de colonne est ajouté sans être placé entre guillemets doubles à l’aide de l’instruction ALTER TABLE ... ADD COLUMN MYCOLUMN, le nom de la colonne est stocké en majuscules et apparaît comme MYCOLUMN dans la colonne column_name.

Sortie

La sortie de commande fournit les propriétés des colonnes et les métadonnées dans les colonnes suivantes :

Colonne

Description

table_name

Name of the table or view that the column, dimension, fact, or metric belongs to.

schema_name

Schéma pour la table.

column_name

Nom de la colonne, de la dimension, du fait ou de la métrique.

data_type

Objet JSON contenant le type de données et les propriétés applicables de la colonne, de la dimension, du fait ou de la métrique.

La paire clé-valeur type spécifie le type de données de la colonne, de la dimension, du fait ou de la métrique.

Pour les types de données chaîne et numérique, type spécifie l’une des valeurs suivantes :

  • TEXT pour tous les types de chaînes.

  • FIXED pour tous les types numériques à virgule fixe.

  • REAL pour tous les types numériques à virgule flottante.

Les autres paires clé-valeur décrivent les propriétés applicables au type de données particulier. Par exemple :

  • Si type est TEXT ou BINARY, les paires clé-valeur supplémentaires peuvent inclure length, byteLength, nullable, et fixed.

  • Si type est FIXED, TIME, TIMESTAMP_NTZ, TIMESTAMP_LTZ, ou TIMESTAMP_TZ, les paires clé-valeur supplémentaires peuvent inclure precision, scale, et nullable.

  • Si type est REAL, DATE, ou BOOLEAN, les paires clé-valeur supplémentaires peuvent inclure nullable.

null?

Si la colonne peut contenir des valeurs NULL ou pas.

default

Valeur par défaut, le cas échéant, définie pour la colonne.

kind

Une des valeurs suivantes :

  • COLUMN pour les colonnes des tables, des vues et des vues matérialisées.

  • DIMENSION pour les dimensions dans les vues sémantiques.

  • FACT pour les faits dans les vues sémantiques.

  • METRIC pour les métriques dans les vues sémantiques.

expression

comment

Comment, if any, for the column, dimension, fact, or metric.

database_name

Base de données pour la table.

autoincrement

Début de l’incrémentation automatique et valeurs d’incrémentation, le cas échéant, pour la colonne. Si la colonne a la propriété NOORDER, la valeur comprend NOORDER (par exemple, IDENTITY START 1 INCREMENT 1 NOORDER). Dans le cas contraire, la valeur comprend ORDER.

schema_evolution_record

Enregistre des informations sur la dernière évolution de schéma déclenchée pour une colonne de table donnée. Cette colonne contient les sous-zones suivantes :

  • EvolutionType: Le type de l’évolution du schéma déclenchée (ADD_COLUMN ou DROP_NOT_NULL).

  • EvolutionMode: The triggering ingestion mechanism (COPY, SNOWPIPE, or SNOWPIPE_STREAMING).

  • FileName: The file name that triggered the evolution (NULL for SNOWPIPE_STREAMING).

  • TriggeringTime : heure approximative à laquelle la colonne a évolué.

  • QueryId or PipeId: A unique identifier of the triggering query or pipe (QUERY ID for COPY, PIPE ID for SNOWPIPE, or NULL for SNOWPIPE_STREAMING).

  • Pipe name: Fully qualified pipe name that triggered schema evolution (SNOWPIPE_STREAMING only).

  • Nom du canal : canal qui a déclenché l’évolution du schéma (SNOWPIPE_STREAMING uniquement).

  • offsetTokenUpperBound : un décalage lors du déclenchement de l’évolution du schéma ou avant (SNOWPIPE_STREAMING uniquement).

Exemples

L’exemple suivant crée une table, puis exécute la commande SHOW COLUMNS pour répertorier les colonnes de la table :

CREATE OR REPLACE TABLE test_show_columns (
  n1 NUMBER DEFAULT 5,
  n2_int INTEGER DEFAULT n1+5,
  n3_bigint BIGINT AUTOINCREMENT,
  n4_dec DECIMAL IDENTITY (1,10),
  f1 FLOAT,
  f2_double DOUBLE,
  f3_real REAL,
  s1 STRING,
  s2_var VARCHAR,
  s3_char CHAR,
  s4_text TEXT,
  "s5_case_sensitive" VARCHAR,
  b1 BINARY,
  b2_var VARBINARY,
  bool1 BOOLEAN,
  d1 DATE,
  t1 TIME,
  ts1 TIMESTAMP,
  ts2_ltz TIMESTAMP_LTZ,
  ts3_ntz TIMESTAMP_NTZ,
  ts4_tz TIMESTAMP_TZ);

SHOW COLUMNS IN TABLE test_show_columns;
Copy
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+
| table_name        | schema_name    | column_name       | data_type                                                                             | null? | default                  | kind   | expression | comment | database_name | autoincrement                         | schema_evolution_record |
|-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------|
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N1                | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  | 5                        | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N2_INT            | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  | TEST_SHOW_COLUMNS.N1 + 5 | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N3_BIGINT         | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  |                          | COLUMN |            |         | MY_DB         | IDENTITY START 1 INCREMENT 1 NOORDER  | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | N4_DEC            | {"type":"FIXED","precision":38,"scale":0,"nullable":true}                             | true  |                          | COLUMN |            |         | MY_DB         | IDENTITY START 1 INCREMENT 10 NOORDER | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | F1                | {"type":"REAL","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | F2_DOUBLE         | {"type":"REAL","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | F3_REAL           | {"type":"REAL","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S1                | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S2_VAR            | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S3_CHAR           | {"type":"TEXT","length":1,"byteLength":4,"nullable":true,"fixed":false}               | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | S4_TEXT           | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | s5_case_sensitive | {"type":"TEXT","length":16777216,"byteLength":16777216,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | B1                | {"type":"BINARY","length":8388608,"byteLength":8388608,"nullable":true,"fixed":true}  | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | B2_VAR            | {"type":"BINARY","length":8388608,"byteLength":8388608,"nullable":true,"fixed":false} | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | BOOL1             | {"type":"BOOLEAN","nullable":true}                                                    | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | D1                | {"type":"DATE","nullable":true}                                                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | T1                | {"type":"TIME","precision":0,"scale":9,"nullable":true}                               | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS1               | {"type":"TIMESTAMP_NTZ","precision":0,"scale":9,"nullable":true}                      | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS2_LTZ           | {"type":"TIMESTAMP_LTZ","precision":0,"scale":9,"nullable":true}                      | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS3_NTZ           | {"type":"TIMESTAMP_NTZ","precision":0,"scale":9,"nullable":true}                      | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
| TEST_SHOW_COLUMNS | MY_SCHEMA      | TS4_TZ            | {"type":"TIMESTAMP_TZ","precision":0,"scale":9,"nullable":true}                       | true  |                          | COLUMN |            |         | MY_DB         |                                       | NULL                    |
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+