Récupérer les avertissements et les erreurs de la phase de récupération
Les messages d'avertissement et d'erreur de la phase de récupération vous fournissent des informations supplémentaires sur les problèmes pouvant survenir lors de la récupération des résultats après la première exécution d'une requête.
Ces messages englobent toute une série de problèmes potentiels, tels que les perturbations du réseau, les problèmes d'épuisement des ressources (comme les contraintes de threads et de mémoire), les exceptions SQL et les avertissements provenant de la source de données distante. Les avertissements et les erreurs de la phase de récupération sont activés par défaut. Vous pouvez les activer ou les désactiver dans Activation et désactivation des avertissements et des erreurs de la phase de récupération dans Data Virtualization.
Avertissement : lorsqu'un avertissement de phase de récupération se produit, un message d'avertissement SQL accompagné du jeu de résultats vous est envoyé. Malgré l'avertissement, la requête termine tout de même la récupération des données que vous avez demandées.
Dans l'exemple suivant, la tableNANINFTESTvirtualisée contient les valeurs non prises en charge INF (infini positif) et NAN (infini négatif). Le message d'avertissement SQL affiche huit enregistrements sélectionnés et la première occurrence de l'avertissement de la phase de récupération. Les avertissements suivants ne sont pas affichés dans l'exemple.db2 "select * from admin.,NANINFTEST". C1 C2 ----- --------------------- А +1.12300000000000E+000 B - SQL1829W The federated server received the warning message "FETCH_WARN" from the data source "DV-FMP". The associated text and tokens are "The resulting value is outside the range for the dat". SQLSTATE=01680 C - D +1.12300000000000E+000 A +1.12300000000000E+000 B - C - D +1.12300000000000E+000Erreur : lorsqu'une erreur survient pendant la phase de récupération, la requête s'arrête et un message d'erreur vous est renvoyé. Les données récupérées jusqu'à présent sont également affichées. Pour savoir pourquoi votre requête s'est arrêtée, vérifiez l'état SQL associé au message d'erreur et recherchez le code d'erreur dans les messages SQLSTATE.
Dans l'exemple suivant, la table
comparison_test2virtualisée a un code d'erreur de22008. Ce code d'erreur est lié à l'erreur suivante : débordement du champ date/heure; par exemple, une opération arithmétique sur une date ou un horodatage donne un résultat qui ne se situe pas dans la plage de dates valide.db2 "select date(i) from admin.comparison_test2;" 1 SQL1822N Unexpected error code "FETCH_ERROR" received from data source "DV-FMP". Associated text and tokens are "Query fetch aborted: REMOTE_SQL_STATE: 22008". SQLSTATE=560BD DB20000I The TERMINATE command completed successfully.