SHOW COLUMNS

Lista as colunas nas tabelas ou exibições e as dimensões, fatos e métricas nas exibições semânticas para as quais você tem privilégios de acesso. Esse comando pode ser usado para listar as colunas, dimensões, fatos e métricas dos seguintes objetos:

  • A tabela ou exibição especificada.

  • Todas as tabelas e exibições no esquema especificado ou no esquema que está em uso atualmente.

  • Todas as tabelas e exibições no banco de dados especificado ou no banco de dados que está em uso atualmente.

  • Todas as tabelas e exibições em sua conta.

Consulte também:

DESCRIBE TABLE

Exibição COLUMNS (Information Schema)

Sintaxe

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

Parâmetros

LIKE '<padrão>'

Filtra a saída do comando pelo nome do objeto. O filtro utiliza correspondência de padrão que não diferencia maiúsculas e minúsculas, com suporte para caracteres curinga SQL (% e _).

Por exemplo, os seguintes padrões retornam os mesmos resultados:

... 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> }

Especifica o escopo do comando, que determina se o comando lista registros apenas para o banco de dados, esquema, tabela ou exibição atual/especificado ou em toda a sua conta:

Se você especificar a palavra-chave ACCOUNT, então o comando recuperará os registros de todos os esquemas em todos os bancos de dados da conta atual.

Se você especificar a palavra-chave DATABASE, então:

  • Se você especificar um db_name, então o comando recupera registros para todos os esquemas do banco de dados especificado.

  • Se você não especificar um db_name, então:

    • Se houver um banco de dados atual, então o comando recuperará os registros de todos os esquemas do banco de dados atual.

    • Se não houver um banco de dados atual, então o comando recuperará registros para todos os bancos de dados e esquemas da conta.

Se você especificar a palavra-chave SCHEMA, então:

  • Se você especificar um nome de esquema qualificado (por exemplo, my_database.my_schema), então o comando recupera os registros para o banco de dados e esquema especificados.

  • Se você especificar um schema_name não qualificado, então:

    • Se houver um banco de dados atual, então o comando recupera os registros para o esquema especificado no banco de dados atual.

    • Se não houver um banco de dados atual, então o comando exibe o erro SQL compilation error: Object does not exist, or operation cannot be performed.

  • Se você não especificar um schema_name, então:

    • Se houver um banco de dados atual, então:

      • Se houver um esquema atual, então o comando recupera registros para o esquema atual no banco de dados atual.

      • Se não houver um esquema atual, então o comando recupera os registros de todos os esquemas no banco de dados atual.

    • Se não houver um banco de dados atual, então o comando recupera os registros de todos os bancos de dados e todos os esquemas da conta.

Se você especificar a palavra-chave TABLE sem um table_name, então:

  • Se houver um banco de dados atual, então:

    • Se houver um esquema atual, então o comando recupera registros para o esquema atual no banco de dados atual.

    • Se não houver um esquema atual, então o comando recupera os registros de todos os esquemas no banco de dados atual.

  • Se não houver um banco de dados atual, então o comando recupera os registros de todos os bancos de dados e todos os esquemas da conta.

Se você especificar um <table_name> (com ou sem a palavra-chave TABLE), então:

  • Se você especificar um <table_name> totalmente qualificado (por exemplo, my_database_name.my_schema_name.my_table_name), então o comando recuperará todos os registros para a tabela especificada.

  • Se você especificar um esquema qualificado <table_name> (por exemplo, my_schema_name.my_table_name), então:

    • Se houver um banco de dados atual, o comando recupera todos os registros da tabela especificada.

    • Se não existir um banco de dados atual, então o comando exibe um erro semelhante a Cannot perform SHOW <tipo_objeto>. This session does not have a current database....

  • Se você especificar um <table_name não qualificado>, então:

    • Se houver um banco de dados atual e um esquema atual, então o comando recupera os registros para a tabela especificada no esquema atual do banco de dados atual.

    • Se não existir um banco de dados atual ou se não existir um esquema atual, então o comando exibirá um erro semelhante a: SQL compilation error: <objeto> 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.

Padrão: depende se a sessão tem ou não um banco de dados em uso no momento:

  • Banco de dados: DATABASE é o padrão (ou seja, o comando retorna os objetos nos quais você tem privilégios para visualizar no banco de dados).

  • Sem banco de dados: ACCOUNT é o padrão (ou seja, o comando retorna os objetos que você tem privilégios de visualização em sua conta).

Notas de uso

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

  • O comando retorna um máximo de dez mil registros para o tipo de objeto especificado, conforme ditado pelos privilégios de acesso da função usada para executar o comando. Todos os registros acima do limite de dez mil registros não são retornados, mesmo com um filtro aplicado.

    Para visualizar os resultados para os quais existem mais de dez mil registros, consulte a exibição correspondente (se houver) em Snowflake Information Schema.

  • O comando não precisa de um warehouse em funcionamento para ser executado.

  • O comando retorna apenas objetos para os quais a função atual do usuário atual recebeu pelo menos um privilégio de acesso.

  • O privilégio de acesso MANAGE GRANTS permite implicitamente que seu titular consulte todos os objetos da conta. Por padrão, somente o administrador de conta (usuários com a função ACCOUNTADMIN) e o administrador de segurança (usuários com a função SECURITYADMIN) têm o privilégio MANAGE GRANTS.

  • Para pós-processar a saída deste comando, você pode usar o operador de canal (->>) ou a função RESULT_SCAN. Ambos os constructos tratam a saída como um conjunto de resultados que você pode consultar.

    Por exemplo, é possível usar o operador de canal ou a função RESULT_SCAN para selecionar colunas específicas da saída do comando SHOW ou filtrar as linhas.

    Ao se referir às colunas de saída, use Identificadores entre aspas duplas para os nomes das colunas. Por exemplo, para selecionar a coluna de saída type, especifique SELECT "type".

    Você deve usar identificadores entre aspas duplas porque os nomes das colunas de saída para os comandos SHOW estão em minúsculas. As aspas duplas garantem que os nomes das colunas na lista SELECT ou a cláusula WHERE corresponde aos nomes das colunas na saída do comando SHOW que foi digitalizada.

Nota

Os nomes das colunas na tabela de saída para o comando SHOW COLUMNS estão em letras minúsculas (ou seja, table_name, schema_name, column_name, e assim por diante). Entretanto, os valores na coluna column_name refletem o nome da coluna que é armazenada. Por exemplo, se um nome de coluna for adicionado sem estar entre aspas duplas usando a instrução ALTER TABLE ... ADD COLUMN MYCOLUMN, o nome da coluna é armazenado em letras maiúsculas e aparece como MYCOLUMN na coluna column_name.

Saída

A saída do comando fornece propriedades de coluna e metadados nas seguintes colunas:

Coluna

Descrição

table_name

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

schema_name

Esquema para a tabela.

column_name

Nome da coluna, dimensão, fato ou métrica.

data_type

Objeto JSON contendo o tipo de dados e propriedades aplicáveis da coluna, dimensão, fato ou métrica.

O par chave-valor type especifica o tipo de dados da coluna, dimensão, fato ou métrica.

Para os tipos de dados string e numérico, type especifica um dos seguintes valores:

  • TEXT para todos os tipos de strings.

  • FIXED para todos os tipos numéricos de ponto fixo.

  • REAL para todos os tipos numéricos de ponto flutuante.

Os outros pares chave-valor descrevem as propriedades aplicáveis ao tipo de dados específico. Por exemplo:

  • Se type for TEXT ou BINARY, os pares chave-valor adicionais poderão incluir length, byteLength, nullable e fixed.

  • Se type for FIXED, TIME, TIMESTAMP_NTZ, TIMESTAMP_LTZ``ou ``TIMESTAMP_TZ, os pares chave-valor adicionais poderão incluir precision, scale e nullable.

  • Se type for REAL, DATE``ou ``BOOLEAN, os pares chave-valor adicionais poderão incluir nullable.

null?

Se a coluna pode conter valores NULL.

default

Valor padrão, se houver, definido para a coluna.

kind

Um dos seguintes valores:

  • COLUMN para colunas em tabelas, exibições e exibições materializadas.

  • DIMENSION para dimensões em exibições semânticas.

  • FACT para fatos em exibições semânticas.

  • METRIC para métricas em exibições semânticas.

expression

comment

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

database_name

Banco de dados para a tabela.

autoincrement

Valores de início e incremento automáticos, se houver, para a coluna. Se a coluna tiver a propriedade NOORDER, o valor incluirá NOORDER (por exemplo, IDENTITY START 1 INCREMENT 1 NOORDER). Caso contrário, o valor incluirá ORDER.

schema_evolution_record

Registra informações sobre a última evolução do esquema acionada para uma determinada coluna da tabela. Esta coluna contém os seguintes subcampos:

  • EvolutionType: o tipo de evolução do esquema acionado (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: o tempo aproximado em que a coluna evoluiu.

  • 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).

  • Nome do canal: o canal que acionou a evolução do esquema (somente SNOWPIPE_STREAMING).

  • offsetTokenUpperBound: a evolução do esquema foi acionada em ou antes desse deslocamento (somente SNOWPIPE_STREAMING).

Exemplos

O exemplo a seguir cria uma tabela e depois executa o comando SHOW COLUMNS para listar as colunas na tabela:

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                    |
+-------------------+----------------+-------------------+---------------------------------------------------------------------------------------+-------+--------------------------+--------+------------+---------+---------------+---------------------------------------+-------------------------+