Visualização ROUTINES

A visualização INFORMATION_SCHEMA.ROUTINES contém uma linha para cada rotina em um conjunto de dados.

Permissões necessárias

Para consultar a visualização INFORMATION_SCHEMA.ROUTINES, você precisa das seguintes permissões de gerenciamento de identidade e acesso (IAM, na sigla em inglês):

  • bigquery.routines.get
  • bigquery.routines.list

Cada um dos seguintes papéis predefinidos do IAM inclui as permissões necessárias para receber metadados de rotina:

  • roles/bigquery.admin
  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer

Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.

Schema

Quando você consulta a visualização INFORMATION_SCHEMA.ROUTINES, os resultados da consulta contêm uma linha para cada rotina em um conjunto de dados.

A visualização INFORMATION_SCHEMA.ROUTINES tem o seguinte esquema:

Nome da coluna Tipo de dados Valor
SPECIFIC_CATALOG STRING O nome do projeto que contém o conjunto de dados em que a rotina está definida
SPECIFIC_SCHEMA STRING O nome do conjunto de dados que contém a rotina
SPECIFIC_NAME STRING O nome da rotina
ROUTINE_CATALOG STRING O nome do projeto que contém o conjunto de dados em que a rotina está definida
ROUTINE_SCHEMA STRING O nome do conjunto de dados que contém a rotina
ROUTINE_NAME STRING O nome da rotina
ROUTINE_TYPE STRING O tipo de rotina:
  • FUNCTION: uma função persistente definida pelo usuário do BigQuery
  • PROCEDURE: um procedimento armazenado do BigQuery
  • TABLE FUNCTION: uma função de tabela do BigQuery.
DATA_TYPE STRING O tipo de dado retornado pela rotina. NULL se a rotina for um procedimento armazenado
ROUTINE_BODY STRING Como o corpo da rotina é definido, SQL ou EXTERNAL se a rotina for uma função JavaScript definida pelo usuário
ROUTINE_DEFINITION STRING A definição da rotina
EXTERNAL_LANGUAGE STRING JAVASCRIPT se a rotina for uma função JavaScript definida pelo usuário ou NULL se a rotina tiver sido definida com SQL
IS_DETERMINISTIC STRING YES se a rotina for determinista, NO se não for, ou NULL se for desconhecido
SECURITY_TYPE STRING Tipo de segurança da rotina, sempre NULL
CREATED TIMESTAMP O horário de criação da rotina
LAST_ALTERED TIMESTAMP A hora da última modificação da rotina
DDL STRING A instrução DDL que pode ser usada para criar a rotina, como CREATE FUNCTION ou CREATE PROCEDURE

Escopo e sintaxe

As consultas nessa visualização precisam incluir um conjunto de dados ou um qualificador de região. Para mais informações, consulte Sintaxe. A tabela a seguir explica os escopos de região e recurso dessa visualização:

Nome da visualização Escopo do recurso Escopo da região
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ROUTINES Nível do projeto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.ROUTINE Nível do conjunto de dados Local do conjunto de dados
Substitua:

Exemplo

-- Returns metadata for routines in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.ROUTINES;

-- Returns metadata for routines in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.ROUTINES;

Exemplo

Exemplo

Para executar a consulta em um projeto diferente do projeto padrão, adicione o código do projeto ao conjunto de dados no seguinte formato:

`PROJECT_ID`.INFORMATION_SCHEMA.ROUTINES
Por exemplo, `myproject`.INFORMATION_SCHEMA.ROUTINES.

O exemplo a seguir recupera todas as colunas da visualização INFORMATION_SCHEMA.ROUTINES. Os metadados retornados são para todas as rotinas em mydataset no seu projeto padrão — myproject. O conjunto de dados mydataset contém uma rotina chamada myroutine1.

SELECT
  *
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES;

O resultado será semelhante ao seguinte:

+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+
| specific_catalog | specific_schema | specific_name | routine_catalog | routine_schema | routine_name | routine_type | data_type | routine_body | routine_definition | external_language | is_deterministic | security_type |           created           |         last_altered        |                            ddl                             |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+
| myproject        | mydataset       | myroutine1    | myproject       | mydataset      | myroutine1   | FUNCTION     | NULL      | SQL          | x + 3              | NULL              | NULL             | NULL          | 2019-10-03 17:29:00.235 UTC | 2019-10-03 17:29:00.235 UTC | CREATE FUNCTION myproject.mydataset.myroutine1(x FLOAT64) |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | AS (                                                      |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | x + 3                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+