

 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\_UDF\_LOG
<a name="r_SVL_UDF_LOG"></a>

 Registra los mensajes de error y advertencia definidos por el sistema que se generan durante la ejecución de la función definida por el usuario (UDF). 

SVL\_UDF\_LOG 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\_UDF\_LOG](SYS_UDF_LOG.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="SVL_UDF_LOG-table-columns"></a>


| Nombre de la columna  | Tipo de datos:  | Descripción  | 
| --- | --- | --- | 
| consulta | bigint | El ID de la consulta. Puede usar este ID para combinar distintas vistas y tablas del sistema. | 
| mensaje | char (4096) | El mensaje generado por la función. | 
| created | marca de tiempo | La hora en que se creó el registro. | 
| traceback | char (4096) | Si está disponible, este valor brinda una pista de stack para la UDF. Para obtener más información, visite [traceback](https://docs.python.org/2/library/traceback.html) en la biblioteca estándar de Python.  | 
| funcname  | character (256) | El nombre de la UDF en ejecución. | 
| node  | entero | El nodo donde se generó el mensaje. | 
| slice | entero | El sector donde se generó el mensaje. | 
| seq | entero | La secuencia del mensaje en el sector. | 

## Consultas de ejemplo
<a name="SVL_UDF_LOG-sample-queries"></a>

En el siguiente ejemplo, se muestra cómo las UDF administran los errores definidos por el sistema. El primer bloque muestra la definición para una función UDF que devuelve la inversa de un argumento. Cuando ejecuta la función y proporciona un argumento 0, como se muestra en el segundo bloque, la función devuelve un error. La tercera instrucción lee el mensaje de error que se registra en SVL\_UDF\_LOG

```
-- Create a function to find the inverse of a number

CREATE OR REPLACE FUNCTION  f_udf_inv(a int)
  RETURNS float IMMUTABLE
AS $$
   return 1/a
$$ LANGUAGE plpythonu;

-- Run the function with a 0 argument to create an error
Select f_udf_inv(0) from sales;

-- Query SVL_UDF_LOG to view the message

Select query, created, message::varchar
from svl_udf_log;

 query |          created           | message                             
-------+----------------------------+---------------------------------------------------------
  2211 | 2015-08-22 00:11:12.04819  | ZeroDivisionError: long division or modulo by zero\nNone
```

En el siguiente ejemplo, se agrega el registro y un mensaje de advertencia a la UDF para que una operación de división en cero dé como resultado un mensaje de advertencia, en lugar de parar con un mensaje de error. 

```
-- Create a function to find the inverse of a number and log a warning

CREATE OR REPLACE FUNCTION f_udf_inv_log(a int)
  RETURNS float IMMUTABLE
 AS $$ 
  import logging
  logger = logging.getLogger() #get root logger
  if a==0:
    logger.warning('You attempted to divide by zero.\nReturning zero instead of error.\n') 
    return 0
  else:
     return 1/a
$$ LANGUAGE plpythonu;
```

En el siguiente ejemplo, se ejecuta la función y, luego se consulta SVL\_UDF\_LOG para ver el mensaje.

```
-- Run the function with a 0 argument to trigger the warning
Select f_udf_inv_log(0) from sales;

-- Query SVL_UDF_LOG to view the message

Select query, created, message::varchar
from svl_udf_log;

query |          created           | message                             
------+----------------------------+----------------------------------
    0 | 2015-08-22 00:11:12.04819  | You attempted to divide by zero. 
                                     Returning zero instead of error.
```