

# Referencia de funciones definidas por el usuario de Amazon RDS para Db2
<a name="db2-user-defined-functions"></a>

Las siguientes funciones definidas por el usuario están disponibles para las instancias de base de datos de Amazon RDS que ejecutan el motor de Db2. 

**Topics**
+ [rdsadmin.get\$1task\$1status](#db2-udf-get-task-status)
+ [rdsadmin.list\$1databases](#db2-udf-list-databases)
+ [rdsadmin.list\$1modifiable\$1db\$1params](#db2-udf-list-modi-db-params)

## rdsadmin.get\$1task\$1status
<a name="db2-udf-get-task-status"></a>

Devuelve el estado de una tarea.

### Sintaxis
<a name="db2-udf-get-task-status-syntax"></a>

```
db2 "select task_id, task_type, database_name, lifecycle,
    varchar(bson_to_json(task_input_params), 500) as task_params,
    cast(task_output as varchar(500)) as task_output
    from table(rdsadmin.get_task_status(task_id,'database_name','task_type'))"
```

### Parameters
<a name="db2-udf-get-task-status-parameters"></a>

Los siguientes parámetros son opcionales. Si no proporciona ningún parámetro, la función definida por el usuario devuelve el estado de todas las tareas de todas las bases de datos. Amazon RDS conserva el historial de tareas durante 35 días.

*task\$1id*  
El ID de la tarea que se está ejecutando. Este ID se devuelve al ejecutar una tarea. Predeterminado: `0`. 

*database\$1name*  
El nombre de la base de datos para la que se está ejecutando la tarea.

*task\$1type*  
El tipo de tarea que se desea consultar. Valores válidos: `ADD_GROUPS`, `ADD_USER`, `ALTER_BUFFERPOOL`, `ALTER_TABLESPACE`, `CHANGE_PASSWORD`, `COMPLETE_ROLLFORWARD`, `CREATE_BUFFERPOOL`, `CREATE_DATABASE`, `CREATE_ROLE`, `CREATE_TABLESPACE`, `DROP_BUFFERPOOL`, `DROP_DATABASE`, `DROP_TABLESPACE`, `LIST_USERS`, `REMOVE_GROUPS`, `REMOVE_USER`, `RESTORE_DB`, `ROLLFORWARD_DB_LOG`, `ROLLFORWARD_STATUS`, `UPDATE_DB_PARAM`.

### Notas de uso
<a name="db2-udf-get-task-status-usage-notes"></a>

Puede utilizar la función definida por el usuario `rdsadmin.get_task_status` para comprobar el estado de las siguientes tareas para Amazon RDS para Db2. Esta lista no es exhaustiva.
+ Crear, modificar o eliminar un grupo de búferes
+ Crear, modificar o eliminar un espacio de tabla
+ Crear o eliminar una base de datos
+ Restaurar una copia de seguridad de una base de datos desde Amazon S3
+ Poner al día los registros de bases de datos desde Amazon S3

### Ejemplos
<a name="db2-udf-get-task-status-examples"></a>

En el siguiente ejemplo se muestran las columnas devueltas cuando se llama a `rdsadmin.get_task_status`.

```
db2 "describe select * from table(rdsadmin.get_task_status())"
```

En el siguiente ejemplo se muestra el estado de todas las tareas.

```
db2 "select task_id, task_type, database_name, lifecycle, 
    varchar(bson_to_json(task_input_params), 500) as task_params, 
    cast(task_output as varchar(500)) as task_output 
    from table(rdsadmin.get_task_status(null,null,null))"
```

En el siguiente ejemplo se muestra el estado de una tarea específica.

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(1,null,null))"
```

En el siguiente ejemplo se muestra el estado de una tarea y una base de datos específicas.

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(2,'SAMPLE',null))"
```

En el siguiente ejemplo se muestra el estado de todas las tareas `ADD_GROUPS`.

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(null,null,'add_groups'))"
```

En el siguiente ejemplo se muestra el estado de todas las tareas para una base de datos específica. 

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(null,'testdb', null))"
```

En el siguiente ejemplo aparecen los valores JSON como columnas.

```
db2 "select varchar(r.task_type,25) as task_type, varchar(r.lifecycle,10) as lifecycle, r.created_at, u.* from 
    table(rdsadmin.get_task_status(null,null,'restore_db')) as r, json_table(r.task_input_params, 'strict $' columns(s3_prefix varchar(500) 
    null on empty, s3_bucket_name varchar(500) null on empty) error on error ) as U"
```

### Respuesta
<a name="db2-udf-get-task-status-response"></a>

La función definida por el usuario `rdsadmin.get_task_status` devuelve las siguientes columnas:

`TASK_ID`  
El ID de la tarea.

`TASK_TYPE`  
Depende de los parámetros de entrada.  
+ `ADD_GROUPS`: agrega grupos.
+ `ADD_USER`: agrega un usuario.
+ `ALTER_BUFFERPOOL`: modifica un grupo de búferes.
+ `ALTER_TABLESPACE`: modifica un espacio de tabla.
+ `CHANGE_PASSWORD `: cambia la contraseña de un usuario.
+ `COMPLETE_ROLLFORWARD`: completa una tarea `rdsadmin.rollforward_database` y activa una base de datos.
+ `CREATE_BUFFERPOOL`: crea un grupo de búferes.
+ `CREATE_DATABASE`: crea una base de datos.
+ `CREATE_ROLE`: crea un rol de Db2 para un usuario.
+ `CREATE_TABLESPACE`: crea un espacio de tabla.
+ `DROP_BUFFERPOOL`: elimina un grupo de búferes.
+ `DROP_DATABASE`: elimina una base de datos.
+ `DROP_TABLESPACE`: elimina un espacio de tabla.
+ `LIST_USERS`: muestra todos los usuarios.
+ `REMOVE_GROUPS`: elimina grupos.
+ `REMOVE_USER`: elimina un usuario.
+ `RESTORE_DB`: restaura una base de datos completa.
+ `ROLLFORWARD_DB_LOG`: realiza una tarea `rdsadmin.rollforward_database` en los registros de la base de datos.
+ `ROLLFORWARD_STATUS `: devuelve el estado de una tarea `rdsadmin.rollforward_database`.
+ `UPDATE_DB_PARAM`: actualiza los parámetros de datos.

`DATABASE_NAME`  
El nombre de la base de datos a la que está asociada la tarea.

`COMPLETED_WORK_BYTES`  
Número de bytes restaurados por la tarea.

`DURATION_MINS`  
El tiempo que se tarda en completar la tarea. 

`LIFECYCLE`  
El estado de la tarea. Estados posibles:  
+ `CREATED`: tras enviar una tarea a Amazon RDS, Amazon RDS establece el estado en `CREATED`.
+ `IN_PROGRESS`: cuando una tarea comienza, Amazon RDS establece su estado en `IN_PROGRESS`. El estado puede tardar hasta cinco minutos en cambiar de `CREATED` a `IN_PROGRESS`.
+ `SUCCESS`: cuando una tarea se completa, el estado se establece en `SUCCESS`.
+ `ERROR`: si se produce un error en una tarea de restauración, Amazon RDS establece el estado en `ERROR`. Para obtener más información acerca del error, consulte `TASK_OUPUT`. 

`CREATED_BY`  
El `authid` que creó el comando.

`CREATED_AT`  
La fecha y hora en que se creó la tarea.

`LAST_UPDATED_AT`  
La fecha y hora de la última actualización de la tarea.

`TASK_INPUT_PARAMS`  
Los parámetros difieren según el tipo de tarea. Todos los parámetros de entrada se representan como un objeto JSON. Por ejemplo, las claves JSON de la tarea `RESTORE_DB` son las siguientes:   
+ `DBNAME`
+ `RESTORE_TIMESTAMP`
+ `S3_BUCKET_NAME`
+ `S3_PREFIX`

`TASK_OUTPUT`  
Información adicional acerca de la tarea. Si ocurre un error durante la restauración nativa, esta columna incluye información acerca del error. 

### Ejemplos de respuesta
<a name="db2-udf-get-task-status-response-examples"></a>

El siguiente ejemplo de respuesta muestra que la base de datos llamada `TESTJP` se creó correctamente. Para obtener más información, consulte el procedimiento almacenado [rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database).

```
`1 SUCCESS CREATE_DATABASE RDSDB 2023-10-24-18.32.44.962689 2023-10-24-18.34.50.038523 1 TESTJP { "CODESET" : "IBM-437", "TERRITORY" : "JP", "COLLATION" : "SYSTEM", "AUTOCONFIGURE_CMD" : "", "PAGESIZE" : 4096 } 
2023-10-24-18.33.30.079048 Task execution has started.

2023-10-24-18.34.50.038523 Task execution has completed successfully`.
```

El siguiente ejemplo de respuesta explica por qué no se pudo eliminar una base de datos. Para obtener más información, consulte el procedimiento almacenado [rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database).

```
1 ERROR DROP_DATABASE RDSDB 2023-10-10-16.33.03.744122 2023-10-10-16.33.30.143797 - 2023-10-10-16.33.30.098857 Task execution has started.
2023-10-10-16.33.30.143797 Caught exception during executing task id 1, Aborting task. 
Reason Dropping database created via rds CreateDBInstance api is not allowed. 
Only database created using rdsadmin.create_database can be dropped
```

El siguiente ejemplo de respuesta muestra la restauración correcta de una base de datos. Para obtener más información, consulte el procedimiento almacenado [rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database).

```
1 RESTORE_DB  SAMPLE  SUCCESS   
                                         
{ "S3_BUCKET_NAME" : "amzn-s3-demo-bucket", "S3_PREFIX" : "SAMPLE.0.rdsdb3.DBPART000.20230413183211.001", "RESTORE_TIMESTAMP" : "20230413183211", "BACKUP_TYPE" : "offline" }                                                                                                                                                                                                                                                                                                                                                   

2023-11-06-18.31.03.115795 Task execution has started.
2023-11-06-18.31.04.300231 Preparing to download
2023-11-06-18.31.08.368827 Download complete. Starting Restore
2023-11-06-18.33.13.891356 Task Completed Successfully
```

## rdsadmin.list\$1databases
<a name="db2-udf-list-databases"></a>

Devuelve una lista de todas las bases de datos que se ejecutan en una instancia de base de datos de RDS para Db2.

### Sintaxis
<a name="db2-udf-list-databases-syntax"></a>

```
db2 "select * from table(rdsadmin.list_databases())"
```

### Notas de uso
<a name="db2-udf-list-databases-usage-notes"></a>

Esta función definida por el usuario no especifica si las bases de datos están activadas o desactivadas. 

Si no ve sus bases de datos en la lista, llame a la función [rdsadmin.get\$1task\$1status](#db2-udf-get-task-status) definida por el usuario y busque los mensajes de error.

### Respuesta
<a name="db2-udf-list-databases-response"></a>

La función definida por el usuario `rdsadmin.list_databases` devuelve las siguientes columnas: 

`DATABASE_NAME`  
El nombre de una base de datos.

`CREATE_TIME`  
La fecha y hora en la que se ha creado la sesión.

`DATABASE_UNIQUE_ID`  
El RDS creó el GUID para identificar de forma exclusiva la base de datos Db2.

`ARCHIVE_LOG_RETENTION_HOUR`  
El número de horas que se van a conservar los archivos de registros de archivo.

`ARCHIVE_LOG_COPY`  
Muestra si la característica está HABILITADA o DESHABILITADA para la base de datos.

`ARCHIVE_LOG_LAST_UPLOAD_FILE `  
Indica el último registro de archivos cargado en S3.

`ARCHIVE_LOG_LAST_UPLOAD_FILE_TIME`  
Indica la hora en que se archivó el archivo de registro.

`ARCHIVE_LOG_COPY_STATUS`  
Muestra el estado de la copia de registro de archivos.  
CARGANDO: indica que los archivos de registro del archivo se están cargando en S3.  
CONFIGURATION\$1ERROR: indica que hay un problema de configuración que requiere su atención.   
Para ver el error detallado, consulte los mensajes de eventos de RDS de su instancia de Db. Los mensajes del evento se pueden ver en [Consulta de eventos de Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ListEvents.html).

### Ejemplos de respuesta
<a name="db2-udf-list-databases-response-examples"></a>

El siguiente ejemplo de respuesta muestra una lista de bases de datos y las horas en que se crearon. `rdsadmin` es una base de datos que Amazon RDS administra y que siempre aparece en los resultados.

```
DATABASE_NAME   CREATE_TIME                DATABASE_UNIQUE_ID                                 ARCHIVE_LOG_RETENTION_HOURS ARCHIVE_LOG_COPY ARCHIVE_LOG_LAST_UPLOAD_FILE ARCHIVE_LOG_LAST_UPLOAD_FILE_TIME ARCHIVE_LOG_COPY_STATUS
--------------- -------------------------- -------------------------------------------------- --------------------------- ---------------- ---------------------------- --------------------------------- ------------------------------
RDSADMIN        2026-01-06-02.03.42.569069 RDSADMIN                                                                     0 DISABLED         -                            -                                 -
FOO             2026-01-06-02.13.42.885650 F0D81C7E-7213-4565-B376-4F33FCF420E3                                         0 ENABLED          S0006536.LOG                 2026-01-28-19.15.10.000000        UPLOADING
CODEP           2026-01-14-19.42.42.508476 106EEF95-6E30-4FFF-85AE-B044352DF095                                         0 DISABLED         -                            -                                 -
...
```

## rdsadmin.list\$1modifiable\$1db\$1params
<a name="db2-udf-list-modi-db-params"></a>

Devuelve una lista de todos los parámetros de configuración de la base de datos que se pueden modificar.

### Sintaxis
<a name="db2-udf-list-modi-db-params-syntax"></a>

```
db2 "select * from table(rdsadmin.list_modifiable_db_params())"
```

### Notas de uso
<a name="db2-udf-list-modi-db-params-usage-notes"></a>

Esta función definida por el usuario muestra una lista seleccionada de parámetros de la base de datos que se pueden modificar. Estos parámetros se pueden actualizar mediante el procedimiento almacenado [rdsadmin.update\$1db\$1param](db2-sp-managing-databases.md#db2-sp-update-db-param).

Todos los parámetros de la base de datos que no estén incluidos en esta lista se han restringido y no se pueden modificar.

### Respuesta
<a name="db2-udf-list-modi-db-params-response"></a>

La función definida por el usuario `rdsadmin.list_modifiable_db_params` devuelve las siguientes columnas: 

`PARAM_NAME`  
El nombre del grupo de parámetros que se puede modificar.

`DEFAULT_VALUE`  
El valor del parámetro predeterminado en el momento de la creación de la base de datos.

`RESTART_REQUIRED`  
Si es necesario reciclar la base de datos o no.  
 Y = Sí, es necesario reiniciar de la base de datos.  
 N = No, no es necesario reiniciar la base de datos.

### Ejemplos de respuesta
<a name="db2-udf-list-modi-db-params-response-examples"></a>

A continuación se muestra una lista de ejemplo (truncada) del resultado esperado.

```
PARAM_NAME             DEFAULT_VALUE RESTART_REQUIRED
---------------------- ------------- ----------------
ACT_SORTMEM_LIMIT      NONE          N
ARCHRETRYDELAY         20            N
AUTHN_CACHE_DURATION   3             N
AUTHN_CACHE_USERS      0             N
AUTO_CG_STATS          OFF           N
...
```