

 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\_MULTI\_STATEMENT\_VIOLATIONS
<a name="r_SVL_MULTI_STATEMENT_VIOLATIONS"></a>

Utilice la vista SVL\_MULTI\_STATEMENT\_VIOLATIONS para obtener un registro completo de todos los comandos SQL que se ejecutan en el sistema e infringen las restricciones de bloque de transacciones.

Las infracciones se producen cuando ejecuta cualquiera de los siguientes comandos SQL que Amazon Redshift restringe dentro de un bloque de transacción o solicitudes de varias instrucciones:
+ [CREATE DATABASE](r_CREATE_DATABASE.md)
+ [DROP DATABASE](r_DROP_DATABASE.md)
+ [ALTER TABLE APPEND](r_ALTER_TABLE_APPEND.md)
+ [CREATE EXTERNAL TABLE](r_CREATE_EXTERNAL_TABLE.md)
+ DROP EXTERNAL TABLE
+ RENAME EXTERNAL TABLE
+ ALTER EXTERNAL TABLE
+ CREATE TABLESPACE
+ DROP TABLESPACE
+ [CREATE LIBRARY](r_CREATE_LIBRARY.md)
+ [DROP LIBRARY](r_DROP_LIBRARY.md)
+ REBUILDCAT
+ INDEXCAT
+ REINDEX DATABASE
+ [VACUUM](r_VACUUM_command.md)
+ [GRANT](r_GRANT.md)
+ [COPY](r_COPY.md)

**nota**  
Si hay entradas en esta vista, cambie las aplicaciones y los scripts SQL correspondientes. Se recomienda cambiar el código de la aplicación para mover el uso de estos comandos SQL restringidos fuera del bloque de transacciones. Si necesita asistencia adicional, contacte con AWS Support.

SVL\_MULTI\_STATEMENT\_VIOLATIONS 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_MULTI_STATEMENT_VIOLATIONS-table-columns"></a>


| Nombre de la columna  | Tipo de datos:  | Descripción  | 
| --- | --- | --- | 
| userid  | entero  | El ID del usuario que causó la infracción.  | 
| database  | character (32)  | El nombre de la base de datos a la que estaba conectado el usuario.  | 
| cmdname  | character(20)  | El nombre del comando que no se puede ejecutar dentro de una solicitud de bloque de transacción o de varias instrucciones. Por ejemplo, CREATE DATABASE, DROP DATABASE, ALTER TABLE APPEND, CREATE EXTERNAL TABLE, DROP EXTERNAL TABLE, RENAME EXTERNAL TABLE, ALTER EXTERNAL TABLE, CREATE LIBRARY, DROP LIBRARY, REBUILDCAT, INDEXCAT, REINDEX DATABASE, VACUUM, GRANT en recursos externos, CLUSTER, COPY, CREATE TABLESPACE y DROP TABLESPACE.  | 
| xid  | bigint  | El ID de la transacción asociado a la instrucción.  | 
| pid  | entero  | El 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 | La 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 | La hora exacta en que la instrucción terminó de ejecutarse, 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)  | El tipo de instrucción SQL: QUERY, DDL o UTILITY.  | 
| text  | character(200)  | El 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_MULTI_STATEMENT_VIOLATIONS-sample-query"></a>

En la siguiente consulta se devuelven varias instrucciones que tienen infracciones.

```
select * from svl_multi_statement_violations order by starttime asc;

userid | database | cmdname | xid | pid | label | starttime | endtime | sequence | type | text
==============================================================================================================================
1 | dev | CREATE DATABASE | 1034 | 5729 |label1 | ********* | ******* | 0 | DDL | create table c(b int);
1 | dev | CREATE DATABASE | 1034 | 5729 |label1 | ********* | ******* | 0 | UTILITY | create database b;
1 | dev | CREATE DATABASE | 1034 | 5729 |label1 | ********* | ******* | 0 | UTILITY | COMMIT
...
```