CODE RETOUR -751

object-type object-name (SPECIFIC NAME specific name) ATTEMPTED TO EXECUTE AN SQL STATEMENT sql-statement THAT IS NOT ALLOWED

Explication :
Une procédure stockée ou une fonction définie par l’utilisateur a tenté d’exécuter une instruction SQL non autorisée.

object-type
Le type d’objet :

  • Procédure stockée
    Une procédure stockée a émis une instruction SQL qui a forcé le thread Db2 à annuler l’unité de travail. L’instruction SQL qui a provoqué le placement du thread dans l’état MUST_ROLLBACK est COMMIT ou ROLLBACK :
    Toutes les autres instructions SQL sont rejetées jusqu’à ce que l’application SQL qui a émis l’instruction SQL CALL annule l’unité de travail. Lorsque le contrôle revient à l’application SQL qui a émis l’instruction SQL CALL, l’application SQL doit annuler l’unité de travail. Cela peut être fait en émettant une instruction SQL ROLLBACK ou l’opération IMS ou CICS® équivalente.
  • Fonction définie par l’utilisateur
    La fonction externe indiquée par object-name a émis une instruction COMMIT ou ROLLBACK.

object-name
Le nom de l’objet.

specific-name
Le nom de la fonction spécifique, qui est unique dans le schéma.

sql-statemen
L’instruction SQL qui a été émise.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Supprimez toutes les instructions COMMIT et ROLLBACK de la procédure stockée ou modifiez l’application cliente afin qu’elle établisse un environnement permettant à la procédure stockée d’exécuter des instructions. Les procédures stockées appelées à distance peuvent exécuter des instructions COMMIT ou ROLLBACK intégrées si les conditions suivantes sont remplies :

  • La connexion avec le système demandeur doit utiliser des protocoles de validation en une phase.
  • Le système demandeur doit indiquer que les validations sont autorisées en envoyant une indication DRDA RDBCMTOK=TRUE lorsque la procédure stockée est appelée.

Pour les systèmes demandeurs Db2 Connect, l’application cliente doit utiliser des connexions Connect Type 1 ou Remote Unit of Work. D’autres connexions font que Db2 Connect indique que les validations ne sont pas autorisées, ce qui entraînera l’échec des instructions COMMIT et ROLLBACK dans une procédure stockée.

SQLSTATE :
38003
2F003