Vista ROTINAS

A vista INFORMATION_SCHEMA.ROUTINES contém uma linha para cada rotina num conjunto de dados.

Autorizações necessárias

Para consultar a vista INFORMATION_SCHEMA.ROUTINES, precisa das seguintes autorizações de gestão de identidade e de acesso (IAM):

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

Cada uma das seguintes funções de IAM predefinidas inclui as autorizações de que precisa para obter metadados de rotina:

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

Para mais informações sobre as autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.

Esquema

Quando consulta a vista INFORMATION_SCHEMA.ROUTINES, os resultados da consulta contêm uma linha para cada rotina num conjunto de dados.

A vista 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 onde 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 onde 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 definida pelo utilizador persistente do BigQuery
  • PROCEDURE: um procedimento armazenado do BigQuery
  • TABLE FUNCTION: Uma função de tabela do BigQuery.
DATA_TYPE STRING O tipo de dados que a rotina devolve. 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 definida pelo utilizador JavaScript
ROUTINE_DEFINITION STRING A definição da rotina
EXTERNAL_LANGUAGE STRING JAVASCRIPT se a rotina for uma função definida pelo utilizador em JavaScript ou NULL se a rotina tiver sido definida com SQL
IS_DETERMINISTIC STRING YES se a rotina for conhecida por ser determinística, NO se não for ou NULL se for desconhecida
SECURITY_TYPE STRING Tipo de segurança da rotina, sempre NULL
CREATED TIMESTAMP A hora de criação da rotina
LAST_ALTERED TIMESTAMP Hora da última modificação da rotina
DDL STRING A declaração DDL que pode ser usada para criar a rotina, como CREATE FUNCTION ou CREATE PROCEDURE
CONNECTION STRING O nome da associação, se a rotina tiver um. Caso contrário NULL

Âmbito e sintaxe

As consultas desta vista têm de incluir um conjunto de dados ou um qualificador de região. Para mais informações, consulte a secção Sintaxe. A tabela seguinte explica os âmbitos da região e dos recursos para esta vista:

Nome da visualização de propriedade Âmbito do recurso Âmbito da região
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ROUTINES Nível do projeto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.ROUTINES Nível do conjunto de dados Localização do conjunto de dados
Substitua o seguinte:
  • Opcional: PROJECT_ID: o ID do seu projeto do Trusted Cloud Google Cloud. Se não for especificado, é usado o projeto predefinido.
  • REGION: qualquer nome da região do conjunto de dados. Por exemplo, `region-us`.
  • DATASET_ID: o ID do seu conjunto de dados. Para mais informações, consulte o artigo Qualificador de conjunto de dados.

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 num projeto que não seja o projeto predefinido, adicione o ID do projeto ao conjunto de dados no seguinte formato:

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

O exemplo seguinte obtém todas as colunas da vista INFORMATION_SCHEMA.ROUTINES. Os metadados devolvidos são para todas as rotinas em mydataset no seu projeto predefinido: myproject. O conjunto de dados mydataset contém uma rotina denominada myroutine1.

SELECT
  *
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES;

O resultado é 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                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+