Catégories :

Fonctions de table

VALIDATE

Valide les fichiers chargés lors d’une exécution passée de la commande COPY INTO <table> et renvoie toutes les erreurs rencontrées lors du chargement, plutôt que seulement la première erreur.

Syntaxe

VALIDATE( [<namespace>.]<table_name> , JOB_ID => { '<query_id>' | '_last' } )

Arguments

[namespace.]table_name

Spécifie le nom complet de la table qui était la cible du chargement.

L’espace de noms est la base de données et/ou le schéma dans lequel réside la table, sous la forme database_name.schema_name ou schema_name. Il est facultatif si une base de données et un schéma sont actuellement utilisés dans la session utilisateur. Dans le cas contraire, il est nécessaire.

JOB_ID => query_id | _last

ID pour que la commande COPY INTO <table> soit validée :

  • Vous pouvez obtenir l’ID à partir de la colonne Query ID de la page History History tab de l”classic web interface. L’ID de requête spécifié doit concerner la table cible spécifiée.

  • Si _last est spécifié au lieu de query_id, la fonction valide le dernier chargement exécuté pendant la session en cours, quelle que soit la table cible spécifiée.

Notes sur l’utilisation

  • Cette fonction ignore la liste SELECT dans les instructions COPY INTO <table> qui transforment les données pendant un chargement. La fonction analyse les fichiers référencés dans l’instruction et renvoie toute erreur d’analyse. Ce comportement peut être surprenant si vous vous attendez à ce que la fonction évalue les fichiers dans le contexte des expressions COPY INTO <table>.

  • La validation ne renvoie aucun résultat pour les instructions COPY spécifiant ON_ERROR = ABORT_STATEMENT (valeur par défaut).

  • La validation échoue si :

    • L’utilisateur actuel n’a pas accès à table_name.

    • L’utilisateur actuel n’est pas l’utilisateur qui a exécuté query_id et ne dispose pas des privilèges de contrôle d’accès sur cet utilisateur.

  • Si de nouveaux fichiers ont été ajoutés à la zone de préparation utilisée par query_id depuis l’exécution du chargement, les nouveaux fichiers ajoutés sont ignorés lors de la validation.

  • Si des fichiers ont été supprimés de la zone de préparation utilisée par query_id depuis l’exécution du chargement, les fichiers supprimés sont signalés comme étant manquants.

Exemples

Renvoyez les erreurs pour la dernière commande COPY exécutée :

SELECT * FROM TABLE(VALIDATE(t1, JOB_ID => '_last'));

Renvoyer les erreurs en spécifiant un ID de requête obtenu à partir de la page Query History dans Snowsight ou de la page History History tab dans l’interface Web classique :

SELECT * FROM TABLE(VALIDATE(t1, JOB_ID=>'5415fa1e-59c9-4dda-b652-533de02fdcf1'));

Même requête que ci-dessus, mais enregistrez les résultats dans une table pour référence future :

CREATE OR REPLACE TABLE save_copy_errors AS SELECT * FROM TABLE(VALIDATE(t1, JOB_ID=>'5415fa1e-59c9-4dda-b652-533de02fdcf1'));
Revenir au début