

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# SVL\_STATEMENTTEXT
<a name="r_SVL_STATEMENTTEXT"></a>

Utilice la vista SVL\_STATEMENTTEXT para obtener un registro completo de todos los comandos SQL que se ejecutaron en el sistema.

La vista SVL\_STATEMENTTEXT tiene la unión de todas las filas en las tablas [STL\_DDLTEXT](r_STL_DDLTEXT.md), [STL\_QUERYTEXT](r_STL_QUERYTEXT.md) y [STL\_UTILITYTEXT](r_STL_UTILITYTEXT.md). Esta vista también incluye una combinación con la tabla STL\_QUERY.

SVL\_STATEMENTTEXT es visible para todos los usuarios. Los superusuarios pueden ver todas las filas; los usuarios normales solo pueden ver sus datos. Para obtener más información, consulte [Visibilidad de datos en las tablas y vistas de sistema](cm_chap_system-tables.md#c_visibility-of-data).

Algunos o todos los datos de esta tabla también están en la vista de monitoreo SYS [SYS\_QUERY\_HISTORY](SYS_QUERY_HISTORY.md). Los datos de la vista de monitoreo SYS están formateados para que sean más fáciles de usar y entender. Se recomienda utilizar la vista de monitoreo SYS para las consultas.

## Columnas de la tabla
<a name="r_SVL_STATEMENTTEXT-table-columns"></a>


| Nombre de la columna  | Tipo de datos:  | Descripción  | 
| --- | --- | --- | 
| userid  | entero  | ID del usuario que generó la entrada.  | 
| xid  | bigint  | ID de la transacción asociado a la instrucción.  | 
| pid  | entero  | ID del proceso para la instrucción.  | 
| etiqueta  | character(320)  | Ya sea el nombre del archivo utilizado para ejecutar la consulta o una etiqueta definida con un comando SET QUERY\_GROUP. Si la consulta no se basa en archivos o si no se establece el parámetro QUERY\_GROUP, el valor del campo queda en blanco.  | 
| starttime  | marca de tiempo | Hora exacta en que la instrucción comenzó a ejecutarse, con 6 dígitos de precisión para las fracciones de segundos. Por ejemplo: .: 2009-06-12 11:29:19.131358  | 
| endtime  | marca de tiempo | Hora exacta en que la instrucción finalizó la ejecución, con 6 dígitos de precisión para las fracciones de segundos. Por ejemplo: .: 2009-06-12 11:29:19.193640  | 
| sequence  | entero  | Cuando una única instrucción tiene más de 200 caracteres, se registran filas adicionales para esa instrucción. Secuencia 0 es la primera fila, 1 es la segunda y, así, sucesivamente.  | 
| tipo  | varchar (10)  | Tipo de instrucción SQL: QUERY, DDL o UTILITY.  | 
| text  | character(200)  | Texto SQL, en incrementos de 200 caracteres. El campo puede contener caracteres especiales como una barra inversa(\\\\) y una nueva línea (\\n).  | 

## Consulta de ejemplo
<a name="r_SVL_STATEMENTTEXT-sample-query"></a>

En la siguiente consulta, se devuelven instrucciones DDL que se ejecutaron el 16 de junio de 2009: 

```
select starttime, type, rtrim(text) from svl_statementtext
where starttime like '2009-06-16%' and type='DDL' order by starttime asc;

starttime                  | type |              rtrim
---------------------------|------|--------------------------------
2009-06-16 10:36:50.625097 | DDL  | create table ddltest(c1 int);
2009-06-16 15:02:16.006341 | DDL  | drop view alltickitjoin;
2009-06-16 15:02:23.65285  | DDL  | drop table sales;
2009-06-16 15:02:24.548928 | DDL  | drop table listing;
2009-06-16 15:02:25.536655 | DDL  | drop table event;
...
```

### Reconstruyendo el SQL almacenado
<a name="r_SVL_STATEMENTTEXT-reconstruct-sql"></a>

Para reconstruir el SQL almacenado en la columna `text` de SVL\_STATEMENTTEXT, ejecute una instrucción SELECT para crear SQL desde 1 o más partes en la columna `text`. Antes de ejecutar el SQL reconstruido, reemplace cualquier caracter especial (`\n`) con una nueva línea. El resultado de la siguiente instrucción SELECT es filas de SQL reconstruido en el campo `query_statement`.

```
select LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END, '') within group (order by sequence) AS query_statement 
from SVL_STATEMENTTEXT where pid=pg_backend_pid();
```

Por ejemplo, la siguiente búsqueda selecciona 3 columnas. La búsqueda en si misma es más larga de 200 caracteres y se guarda en varias partes en VL\_STATEMENTTEXT.

```
select
1 AS a0123456789012345678901234567890123456789012345678901234567890,
2 AS b0123456789012345678901234567890123456789012345678901234567890,
3 AS b012345678901234567890123456789012345678901234
FROM stl_querytext;
```

En este ejemplo, la búsqueda se guarda en 2 partes (filas) en la columna `text` de VL\_STATEMENTTEXT.

```
select sequence, text from SVL_STATEMENTTEXT where pid = pg_backend_pid() order by starttime, sequence;
```

```
 sequence |                                                                                             text                                                                                                   
----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        0 | select\n1 AS a0123456789012345678901234567890123456789012345678901234567890,\n2 AS b0123456789012345678901234567890123456789012345678901234567890,\n3 AS b012345678901234567890123456789012345678901234
        1 | \nFROM stl_querytext;
```

Para reconstruir el SQL almacenado en VL\_STATEMENTTEXT, ejecute el siguiente SQL. 

```
select LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END, '') within group (order by sequence) AS text 
from SVL_STATEMENTTEXT where pid=pg_backend_pid();
```

Para usar el SQL reconstruido resultante en su cliente, reemplace cualquier (`\n`) caracter especial con una nueva línea. 

```
                                                                                                             text                                                                                                             
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 select\n1 AS a0123456789012345678901234567890123456789012345678901234567890,\n2 AS b0123456789012345678901234567890123456789012345678901234567890,\n3 AS b012345678901234567890123456789012345678901234\nFROM stl_querytext;
```