Résolution des problèmes de SQL statique pour DB2
Cette rubrique décrit les erreurs courantes et les erreurs de codage qui peuvent se produire lorsque vous utilisez la fonctionnalité de packages SQL statique pour DB2 dans Microsoft ADO.NET Fournisseur pour DB2 (fournisseur de données).
Erreurs courantes
Le tableau suivant décrit les erreurs de serveur DB2 qui peuvent survenir et les actions que vous devez effectuer pour les corriger.
SQLCODE | Action |
---|---|
SQLCODE -104 (instruction non valide) | - Valider et faire correspondre les données au schéma de base de données. - Vérifiez que les éléments de commande correspondent au schéma du package. |
SQLCODE -204 (objet introuvable) | Vérifiez que les noms d’objets qualifiés (quatre parties ou alias). |
SQLCODE -440 (paramètres incorrects) | Vérifiez que les éléments de commande correspondent au schéma du package. |
SQLCODE -501 (curseur non ouvert) | Vérifiez que la commande inclut CALL STATIC. |
SQLCODE -551 (privilèges insuffisants) | Vérifiez que les privilèges des packages CREATE, BIND et EXECUTE sont définis. |
SQLCODE -601 (nom de l’objet non unique) | Vérifiez l’unicité de la convention de nommage. |
Erreurs courantes de codage
Le tableau suivant décrit les erreurs de codage courantes par zone de fonctionnalité.
Domaine | Description |
---|---|
Document XML | - Chaque paramètre d’entrée nécessite un élément de paramètre. Chaque colonne de sortie nécessite un élément de colonne. - Les noms de curseur doivent être uniques au sein d’un package. - Les éléments ne sont pas fermés ou ne correspondent pas. |
Niveau d’isolation DB2 pour IBM i | Dans HIS 2010, le niveau d’isolation pris en charge est No Commit (NC), qui doit être spécifié dans le document XML en tant que « IsolationLevel= » NoCommit. |
Chevauchement de procédure stockée et d’alias | - La création de package échoue lorsque le nom du package, le numéro de section ou l’alias de package n’est pas unique. - Si la création du package réussit, mais que le nom de l’alias est identique au nom d’une procédure stockée, une erreur d’exécution peut se produire (par exemple, SQLCODE -440 pour les paramètres non valides). Le serveur DB2 peut également retourner un jeu de résultats inattendu. |
Aucun nom d’alias | - Si le fichier de métadonnées ne contient pas de nom d’alias, le client Microsoft exécute l’instruction en tant que procédure stockée. - Si une procédure stockée portant le même nom existe, la procédure stockée est exécutée et le programme peut rencontrer des résultats inattendus. - S’il n’existe aucune procédure stockée portant le même nom, le serveur de base de données retourne une erreur indiquant que le nom de l’objet n’est pas défini (SQLCODE -204). |