Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

SYS_UDF_LOG

Modo de enfoque
SYS_UDF_LOG - Amazon Redshift

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

SYS_UDF_LOG solo está visible para los superusuarios. Para obtener más información, consulte Visibilidad de datos en las tablas y vistas de sistema.

Columnas de la tabla

Nombre de la columna Tipo de datos: Descripción
query_id bigint Identificador de la consulta.
function_name texto El nombre de la función definida por el usuario.
record_time marca de tiempo La hora en la que se creó el registro.
sequence entero La secuencia de un único mensaje de registro.
mensaje texto El texto del mensaje de registro.

Consultas de ejemplo

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. Si ejecuta la función y proporciona un 0 como argumento, la función devuelve un error. La última instrucción devuelve el mensaje de error registrado en SYS_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 0 to create an error. Select f_udf_inv(0); -- Query SYS_UDF_LOG to view the message. Select query_id, record_time, message::varchar from sys_udf_log; query_id | record_time | message ----------+----------------------------+------------------------------------------------------- 2211 | 2023-08-23 15:53:11.360538 | ZeroDivisionError: integer division or modulo by zero line 2, in f_udf_inv\n return 1/a\n

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 if you input 0. 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; -- Run the function with 0 to trigger the warning. Select f_udf_inv_log(0); -- Query SYS_UDF_LOG to view the message. Select query_id, record_time, message::varchar from sys_udf_log; query_id | record_time | message ----------+----------------------------+------------------------------------------------------------------------------- 0 | 2023-08-23 16:10:48.833503 | WARNING: You attempted to divide by zero.\nReturning zero instead of error.\n

En esta página

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.