2009-07-09 5 views
0

Le problème auquel je suis confronté concerne principalement la gestion des exceptions! Quand une exception se produit, je veux mettre ces données dans une autre table de journal avec le message d'erreur. Toutefois, dans DB2, je ne suis pas en mesure de trouver un moyen de récupérer le message d'erreur correspondant pour le SQLSTATE déclenché. PS: J'ai une procédure stockée pour cette migration et je n'utilise aucune autre langue pour l'appeler.DB2 Exception Handling

Cependant, j'ai déjà posé des questions à ce sujet et en fait j'ai obtenu des indications précieuses.

Reportez-vous: DB2 Exception handling

Cependant, si j'utilise la fonction SQLERRM de base puis pour une 23502 de base que je reçois le message suivant:

« SQLSTATE 23502: Une valeur d'insertion ou mise à jour est nulle, mais la colonne ne peut pas contenir de valeurs nulles. "

Attendu que ce que je veux vraiment, c'est le nom de colonne qui a jeté cette erreur, ajouté à ce message! Y at-il un moyen, le DB2 pourrait me donner une erreur complète, avec le nom de la colonne de l'erreur a été soulevée?

Merci à l'avance; -) ...

Harveer

Répondre

1

Vous devez récupérer tous les jetons de la SQLCA lorsque vous rencontrez une telle erreur. Les jetons contiendront soit le nom de la table et le nom de la colonne, soit l'ID de la table numérique et la position de la colonne dans la table, en commençant par zéro. La fonction SQLERRM prend ces jetons et les utilise pour reconstruire un message d'erreur aussi détaillé que ce que vous voyez à partir de la ligne de commande.