Visualizzazione ROUTINE

La visualizzazione INFORMATION_SCHEMA.ROUTINES contiene una riga per ogni routine in un set di dati.

Autorizzazioni obbligatorie

Per eseguire query sulla visualizzazione INFORMATION_SCHEMA.ROUTINES, devi disporre delle seguenti autorizzazioni IAM (Identity and Access Management):

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

Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per ottenere i metadati di routine:

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

Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.

Schema

Quando esegui una query sulla visualizzazione INFORMATION_SCHEMA.ROUTINES, i risultati della query contengono una riga per ogni routine in un set di dati.

La vista INFORMATION_SCHEMA.ROUTINES ha lo schema seguente:

Nome colonna Tipo di dati Valore
specific_catalog STRING Il nome del progetto che contiene il set di dati in cui è definita la routine
specific_schema STRING Il nome del set di dati contenente la routine
specific_name STRING Il nome della routine
routine_catalog STRING Il nome del progetto che contiene il set di dati in cui è definita la routine
routine_schema STRING Il nome del set di dati contenente la routine
routine_name STRING Il nome della routine
routine_type STRING Il tipo di routine:
  • FUNCTION: una funzione definita dall'utente permanente di BigQuery
  • PROCEDURE: una stored procedure BigQuery
  • TABLE FUNCTION: una funzione di tabella BigQuery.
data_type STRING Il tipo di dati restituito dalla routine. NULL se la routine è una stored procedure
routine_body STRING Come viene definito il corpo della routine, SQL o EXTERNAL se la routine è una funzione definita dall'utente JavaScript
routine_definition STRING La definizione della routine
external_language STRING JAVASCRIPT se la routine è una funzione definita dall'utente JavaScript o NULL se la routine è stata definita con SQL
is_deterministic STRING YES se la routine è nota per essere deterministica, NO se non lo è o NULL se non è noto
security_type STRING Tipo di sicurezza della routine, sempre NULL
created TIMESTAMP L'ora di creazione della routine
last_altered TIMESTAMP Data/ora dell'ultima modifica della routine
ddl STRING L'istruzione DDL che può essere utilizzata per creare la routine, ad esempio CREATE FUNCTION o CREATE PROCEDURE
connection STRING Il nome della connessione, se la routine ne ha uno. Altrimenti NULL

Per garantire la stabilità, ti consigliamo di elencare esplicitamente le colonne nelle query dello schema informativo anziché utilizzare un carattere jolly (SELECT *). L'elenco esplicito delle colonne impedisce l'interruzione delle query se lo schema sottostante cambia.

Ambito e sintassi

Le query su questa vista devono includere un qualificatore di set di dati o di regione. Per ulteriori informazioni, consulta la sezione Sintassi. La tabella seguente spiega gli ambiti di regione e risorsa per questa visualizzazione:

Nome vista Ambito risorsa Ambito regione
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ROUTINES Livello progetto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.ROUTINES Livello del set di dati Posizione del set di dati
Sostituisci quanto segue:
  • (Facoltativo) PROJECT_ID: l'ID del tuo Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito.
  • REGION: qualsiasi nome della regione del set di dati. Ad esempio: `region-us`.
  • DATASET_ID: l'ID del set di dati. Per maggiori informazioni, vedi Qualificatore del set di dati.

Esempio

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

Esempio

Esempio

Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato:

`PROJECT_ID`.INFORMATION_SCHEMA.ROUTINES
. Ad esempio, `myproject`.INFORMATION_SCHEMA.ROUTINES.

L'esempio seguente recupera tutte le colonne dalla vista INFORMATION_SCHEMA.ROUTINES. I metadati restituiti riguardano tutte le routine in mydataset nel tuo progetto predefinito, myproject. Il set di dati mydataset contiene una routine denominata myroutine1.

SELECT
  *
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES;

Il risultato è simile al seguente:

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