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

Para garantir a estabilidade, recomendamos que liste explicitamente as colunas nas suas consultas de esquema de informações em vez de usar um caráter universal (SELECT *). A listagem explícita de colunas impede que as consultas sejam interrompidas se o esquema subjacente for alterado.

Â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 Google 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                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+