vista ROUTINES

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

Autorizzazioni obbligatorie

Per eseguire una query sulla vista 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 ricevere i metadati di routine:

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

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

Schema

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

La vista INFORMATION_SCHEMA.ROUTINES ha il seguente schema:

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 che contiene 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 che contiene la routine
ROUTINE_NAME STRING Il nome della routine
ROUTINE_TYPE STRING Il tipo di routine:
  • FUNCTION: una funzione BigQuery permanente definita dall'utente
  • 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 JavaScript definita dall'utente
ROUTINE_DEFINITION STRING La definizione della routine
EXTERNAL_LANGUAGE STRING JAVASCRIPT se la routine è una funzione JavaScript definita dall'utente oppure 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 sconosciuta
SECURITY_TYPE STRING Tipo di sicurezza della routine, sempre NULL
CREATED TIMESTAMP Ora di creazione della routine
LAST_ALTERED TIMESTAMP 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

Ambito e sintassi

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

Nome vista Ambito risorsa Ambito regione
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ROUTINES A livello di progetto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.ROUTINE Livello set di dati Posizione del set di dati
Sostituisci quanto segue:

  • (Facoltativo) PROJECT_ID: l'ID del tuo progetto Google Cloud. 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 ulteriori informazioni, consulta la sezione 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 visualizzazione INFORMATION_SCHEMA.ROUTINES. I metadati restituiti si riferiscono a 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                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+