Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

SVL_UDF_LOG - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

SVL_UDF_LOG

Enregistre la génération des messages d’erreur et d’avertissement définis par le système au cours de l’exécution de la fonction définie par l’utilisateur (UDF).

SVL_UDF_LOG est visible par tous les utilisateurs. Les super-utilisateurs peuvent voir toutes les lignes, tandis que les utilisateurs standard peuvent voir uniquement leurs propres données. Pour de plus amples informations, veuillez consulter Visibilité des données dans les tables et vues système.

Tout ou partie des données de cette table sont également disponibles dans la vue de surveillance SYS SYS_UDF_LOG. Les données de la vue de surveillance SYS sont formatées pour être plus faciles à utiliser et à comprendre. Nous vous recommandons d’utiliser la vue de surveillance SYS pour vos requêtes.

Colonnes de la table

Nom de la colonne Type de données Description
query bigint ID de requête. Vous pouvez utiliser cet ID pour joindre d’autres vues et tables système.
message char(4096) Message généré par la fonction.
créé timestamp Heure à laquelle le journal a été créé.
traceback char(4096) Si cette valeur est disponible, elle fournit un suivi de la pile pour l’UDF. Pour plus d’informations, consultez Suivi dans la bibliothèque standard Python.
funcname character(256) Nom de la fonction UDF en cours d’exécution.
node entier Le nœud sur lequel le message a été généré.
slice entier La tranche sur laquelle le message a été généré.
seq entier La séquence du message sur la tranche.

Exemples de requêtes

L'exemple suivant montre comment UDFs gérer les erreurs définies par le système. Le premier bloc présente la définition d’une fonction UDF qui renvoie l’inverse d’un argument. Lorsque vous exécutez la fonction et fournissez un argument 0, comme le montre le deuxième bloc, la fonction renvoie une erreur. La troisième instruction lit le message d’erreur enregistré dans 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

L’exemple suivant ajoute un message de consignation et d’avertissement à la fonction UDF afin qu’une opération de division par zéro génère un message d’avertissement au lieu de s’arrêter avec un message d’erreur.

-- 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;

L’exemple suivant exécute la fonction, puis interroge SVL_UDF_LOG pour afficher le message.

-- 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.

Rubrique suivante :

SVL_USER_INFO

Rubrique précédente :

SVL_TERMINATE
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.