Vista ROUTINES
La vista INFORMATION_SCHEMA.ROUTINES
contiene una fila para cada rutina en un conjunto de datos.
Permisos necesarios
Para consultar la vista INFORMATION_SCHEMA.ROUTINES
, necesitas los siguientes permisos de Identity and Access Management (IAM):
bigquery.routines.get
bigquery.routines.list
Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para obtener metadatos de rutina:
roles/bigquery.admin
roles/bigquery.metadataViewer
roles/bigquery.dataViewer
Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.
Esquema
Cuando consultas la vista INFORMATION_SCHEMA.ROUTINES
, los resultados de la consulta contienen una fila por cada rutina de un conjunto de datos.
La vista INFORMATION_SCHEMA.ROUTINES
tiene el siguiente esquema:
Nombre de la columna | Tipo de datos | Valor |
---|---|---|
SPECIFIC_CATALOG |
STRING |
El nombre del proyecto que contiene el conjunto de datos en el que se define la rutina |
SPECIFIC_SCHEMA |
STRING |
El nombre del conjunto de datos que contiene la rutina |
SPECIFIC_NAME |
STRING |
El nombre de la rutina |
ROUTINE_CATALOG |
STRING |
El nombre del proyecto que contiene el conjunto de datos en el que se define la rutina |
ROUTINE_SCHEMA |
STRING |
El nombre del conjunto de datos que contiene la rutina |
ROUTINE_NAME |
STRING |
El nombre de la rutina |
ROUTINE_TYPE |
STRING |
El tipo de rutina:
|
DATA_TYPE |
STRING |
El tipo de datos que muestra la rutina. NULL si la rutina es un procedimiento almacenado |
ROUTINE_BODY |
STRING |
La manera en la que se define el cuerpo de la rutina, ya sea SQL o EXTERNAL si la rutina es una función de JavaScript definida por el usuario |
ROUTINE_DEFINITION |
STRING |
La definición de la rutina |
EXTERNAL_LANGUAGE |
STRING |
JAVASCRIPT si la rutina es una función de JavaScript definida por el usuario o NULL si la rutina se definió con SQL |
IS_DETERMINISTIC |
STRING |
YES si se sabe que la rutina es determinista, NO si no lo es o NULL si se desconoce |
SECURITY_TYPE |
STRING |
El tipo de seguridad de la rutina, siempre NULL |
CREATED |
TIMESTAMP |
La hora de creación de la rutina |
LAST_ALTERED |
TIMESTAMP |
La hora en la que se modificó la rutina por última vez |
DDL |
STRING |
La declaración DDL que se puede usar para crear la rutina, como CREATE FUNCTION o CREATE PROCEDURE
|
CONNECTION |
STRING |
El nombre de la conexión, si la rutina tiene uno. De lo contrario,
NULL |
Permiso y sintaxis
Las consultas realizadas a esta vista deben incluir un conjunto de datos o un calificador de región. Para obtener más información, consulta Sintaxis. En la siguiente tabla, se explican los permisos de la región y los recursos para esta vista:
Nombre de la vista | Permiso del recurso | Permiso de la región |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ROUTINES |
Nivel de proyecto | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.ROUTINES |
Nivel de conjunto de datos | Ubicación del conjunto de datos |
Opcional: PROJECT_ID
: el ID del proyecto de Google Cloud. Si no se especifica, se usa el proyecto predeterminado.
REGION
: Cualquier nombre de región del conjunto de datos. Por ejemplo,`region-us`
.DATASET_ID
: Es el ID del conjunto de datos. Para obtener más información, consulta calificador de conjunto de datos.
Ejemplo
-- 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;
Ejemplo
Ejemplo
Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto al conjunto de datos en este formato:
`PROJECT_ID`.INFORMATION_SCHEMA.ROUTINES
`myproject`.INFORMATION_SCHEMA.ROUTINES
.
En el ejemplo que se muestra a continuación, se recuperan todas las columnas de la vista INFORMATION_SCHEMA.ROUTINES
. Los metadatos que se muestran corresponden a todas las rutinas de mydataset
en el proyecto predeterminado: myproject
. El conjunto de datos mydataset
contiene una rutina llamada myroutine1
.
SELECT * FROM mydataset.INFORMATION_SCHEMA.ROUTINES;
El resultado es similar al siguiente:
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+ | 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 | | | | | | | | | | | | | | | | | ); | +------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+