Tous les articles par Mr COBOL

CODE RETOUR -734

THE ROSHARE ATTRIBUTE OF A DATABASE CANNOT BE ALTERED FROM ROSHARE READ

Explication :
Tentative de modification d’une base de données de ROSHARE READ vers ROSHARE OWNER ou ROSHARE NONE.

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

Réponse du programmeur :
Vérifiez que la base de données correcte a été spécifiée dans l’instruction ALTER DATABASE. L’attribut ROSHARE d’une base de données partagée en lecture seule ne peut pas être modifié. Pour changer cela, DROP et recréez la base de données.

SQLSTATE :
56057

CODE RETOUR -725

THE SPECIAL REGISTER register AT LOCATION location WAS SUPPLIED AN INVALID VALUE

Explication :
Db2 a reçu une instruction SET avec une valeur non valide. Les SET valides peuvent être autorisés ou conservés. Le traitement ultérieur s’arrête au site nommé jusqu’à ce que l’instruction SET soit corrigée.

Action du système :
Toutes les instructions SQL du site distant nommé sont rejetées jusqu’à ce que l’instruction SET erronée soit corrigée.

Réponse du programmeur :
L’instruction SET doit être réémise avec une valeur valide. Cette situation peut être corrigée avec une instruction SET locale ou avec une instruction DRDA SET exécutée sur le site distant. Une fois que le registre spécial a reçu une valeur valide, l’application peut reprendre son exécution.

SQLSTATE :
42721

CODE RETOUR -726

BIND ERROR ATTEMPTING TO REPLACE PACKAGE = package-name. THERE ARE ENABLE OR DISABLE ENTRIES CURRENTLY ASSOCIATED WITH THE PACKAGE

Explication :
La sous-commande BIND a été émise pour remplacer un package qui a des entrées ENABLE ou DISABLE actuellement associées au package.

Action du système :
Colis non lié.

Réponse du programmeur système :
FREE (liberez) d’abord le paquet, puis BIND (liez) le paquet.

SQLSTATE :
55030

CODE RETOUR -729

A STORED PROCEDURE SPECIFYING COMMIT ON RETURN CANNOT BE THE TARGET OF A NESTED CALL STATEMENT

Explication :
Une procédure stockée définie avec l’attribut COMMIT ON RETURN a été appelée à partir d’une procédure stockée, d’une fonction définie par l’utilisateur ou d’un déclencheur (trigger). Les procédures stockées définies avec COMMIT ON RETURN ne peuvent pas être imbriquées de cette manière.

Action du système :
L’instruction SQL n’est pas exécutée. Si l’instruction CALL fait référence à un serveur distant, l’unité d’oeuvre est placée dans un état d’annulation obligatoire.

Réponse du programmeur :
Supprimez le CALL à la procédure stockée qui a été définie avec l’attribut COMMIT ON RETURN.

SQLSTATE :
429B1

CODE RETOUR -730

THE PARENT OF A TABLE IN A READ-ONLY SHARED DATABASE MUST ALSO BE A TABLE IN A READ-ONLY SHARED DATABASE

Explication :
Tentative de définition d’une relation entre une table dans une base de données partagée en lecture seule et une table qui ne l’est pas.

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

Réponse du programmeur :
Assurez-vous que les tables correctes sont utilisées pour la relation en cours de définition.

SQLSTATE :
56053

CODE RETOUR -721

BIND ERROR FOR PACKAGE = pkg-id CONTOKEN = contoken‘X IS NOT UNIQUE SO IT CANNOT BE CREATED

Explication :
Tentative d’ajout ou de remplacement d’un package par un jeton de cohérence qui n’est pas unique pour ce package. En d’autres termes, la combinaison location.collection.package.consistency-token existe déjà.

pkg-id
Nom qualifié complet du package.
contoken
Jeton de cohérence en hexadécimal.

Action du système :
Le BIND échouera.

Réponse du programmeur système :
Vérifiez la table de catalogue SYSIBM.SYSPACKAGE pour les noms des packages d’application existants avec le jeton de cohérence indiqué. Relancez la sous-commande BIND de sorte que location.collection.package.consistency-token soit unique dans le catalogue. L’instruction SQL suivante peut être utilisée pour interroger le catalogue :

SELECT COLLID,NAME
FROM loc-id.SYSIBM.SYSPACKAGE
WHERE HEX(CONTOKEN) = contoken

SQLSTATE :
42710

CODE RETOUR -722

bind-type ERROR USING auth-id AUTHORITY PACKAGE package-name DOES NOT EXIST

Explication :
La sous-commande indiquée a été émise pour un package qui n’existe pas. Les champs variables individuels contiennent :

bind-type
Type de sous-commande de liaison (BIND | REBIND | FREE).
auth-id
ID d’autorisation de l’appelant de la sous-commande BIND.
package-name
Nom du package (location.collection.package.version)

Action du système :
Colis non rebondi ou libéré.

Réponse du programmeur système :
Vérifiez la table de catalogue SYSPACKAGE pour le bon ‘location.collection.package.version’ à utiliser.

SQLSTATE :
42704

CODE RETOUR -723

AN ERROR OCCURRED IN A TRIGGERED SQL STATEMENT IN trigger-name. INFORMATION RETURNED: SQLCODE: sql-code, SQLSTATE: sql-state, MESSAGE TOKENS token-list, SECTION NUMBER section-number

Explication :
Lors de l’exécution d’une instruction UPDATE, MERGE, INSERT ou DELETE, un déclencheur (trigger) a été activé. L’une des instructions SQL déclenchées a reçu une condition d’erreur SQL.

trigger-name
Le déclencheur qui a été activé lorsque l’erreur s’est produite.
section-number
Numéro de section associé à l’instruction SQL déclenchée défaillante. Pour les déclencheurs qui contiennent une clause WHEN, la clause WHEN est la section numéro un. Les instructions SQL déclenchées sont numérotées séquentiellement, en commençant par la section numéro deux. Cela est vrai pour les déclencheurs avec ou sans clause WHEN.
sql-code
Une valeur numérique qui indique pourquoi l’exécution de l’instruction SQL a échoué. Ce code est reçu par le déclencheur activé.
sql-state
Le SQLSTATE correspondant pour le SQLCODE.
token-list
La liste des jetons de l’erreur SQL d’origine. Cette liste peut être tronquée.

Action du système :
Le déclencheur et l’instruction d’origine ne peuvent pas être traités. La table de déclenchement est inchangée.

Réponse du programmeur système :
Identifiez l’instruction SQL défaillante à l’aide de l’une des méthodes suivantes :

  • Utilisez le nom du déclencheur et le numéro de section.
  • Si la définition du déclencheur est disponible, utilisez le numéro de section.
  • Utilisez l’instruction SELECT suivante pour extraire l’instruction de la table de catalogue SYSIBM.SYSPACKSTMT :

SELECT STMT, SEQNO FROM SYSIBM.SYSPACKSTMT
WHERE COLLID = 'schema-name'
AND NAME = 'trigger-name'
AND SECTNOI = section-number
ORDER BY SEQNO

Le résultat STMT est au format Unicode, sauf si le déclencheur a été créé dans DB2 version 7 ou antérieure. Pour afficher un résultat Unicode au format EBCDIC, émettez la commande DISPLAY UTF8 dans le programme de navigation ISPF dans SPUFI.

Reportez-vous à l’explication du SQLCODE indiqué par sql-code dans ce code et prenez l’action ou les actions appropriées.

Réponse du programmeur :
Contactez votre administrateur de base de données pour déterminer pourquoi le déclencheur nommé dans le message a reçu l’erreur.

SQLSTATE :
09000

CODE RETOUR -724

THE ACTIVATION OF THE object-type OBJECT object-name WOULD EXCEED THE MAXIMUM LEVEL OF INDIRECT SQL CASCADING

Explication :
La cascade de SQL indirect se produit lorsqu’un déclencheur (trigger), une fonction définie par l’utilisateur ou une procédure stockée appelle un autre déclencheur, une fonction définie par l’utilisateur ou une procédure stockée qui, à son tour, en appelle un autre. L’activation de certains des déclencheurs de cette chaîne peut être due à l’application de règles de suppression de contraintes référentielles. La profondeur de cette cascade est limitée à 16.

Notez que les situations récursives dans lesquelles un déclencheur inclut une instruction SQL déclenchée qui provoque directement ou indirectement l’activation du même déclencheur sont très susceptibles de provoquer cette erreur. Le déclencheur doit contenir une logique pour rechercher une condition de fin afin d’éviter cette erreur.

object-type
Nomme le type d’objet appelé. Le type d’objet est TRIGGER, FUNCTION ou PROCEDURE.
object-name
Spécifie le nom du déclencheur, de la fonction définie par l’utilisateur ou de la procédure stockée qui aurait été activé au dix-septième niveau de cascade.

Action du système :
L’instruction d’origine n’a pas pu être exécutée. Toutes les instructions SQL exécutées par tous les déclencheurs, les fonctions définies par l’utilisateur et les procédures stockées dans la chaîne en cascade sont annulées. Les actions externes effectuées par le SQL indirect, telles que l’envoi d’un message réseau, peuvent déjà avoir eu lieu.

Réponse du programmeur :
Commencez par le SQL indirect activé par l’opération SQL d’origine. Recherchez des modèles récursifs dans toutes les fonctions définies par l’utilisateur appelées ou dans tous les déclencheurs définis au sujet d’une opération de mise à jour. Si la chaîne n’est pas récursive, la chaîne en cascade doit être simplifiée en modifiant les déclencheurs, les fonctions définies par l’utilisateur ou les procédures stockées impliquées.

SQLSTATE :
54038

CODE RETOUR -720

BIND ERROR, ATTEMPTING TO REPLACE PACKAGE = package_name WITH version= version2 BUT THIS VERSION ALREADY EXISTS

Explication :
Tentative de création d’une version d’un package qui existe déjà. La version spécifiée dans le mot-clé REPLVER est différente de la version spécifiée pour la précompilation. La version spécifiée pour la précompilation existe déjà dans le catalogue. La combinaison ‘location.collection.package.version’ doit être unique dans la table de catalogue SYSIBM.SYSPACKAGE. Une erreur courante est que l’utilisateur peut croire que la version qu’il crée est celle spécifiée dans le mot-clé REPLVER. Ce n’est pas le cas. La version spécifiée dans le mot-clé REPLVER est le nom de la version remplacée. La version qui sera créée est la version qui a été donnée au programme lors de sa précompilation.

package_name
Nom complet du package
version2 
ID de version du package à créer

Action du système :
La liaison échouera.

Réponse du programmeur système :
Il existe deux approches pour résoudre ce problème. La première consiste à précompiler à nouveau le programme avec un nouveau nom de version et à relancer la sous-commande BIND d’origine. L’autre approche consiste à ne pas effectuer la précompilation mais à relancer la sous-commande BIND avec REPLVER(SAME).

SQLSTATE :
42710