Tous les articles par Mr COBOL

SPITAB 29

Explication du SPITAB 29 :

Table non-validée dans un environnement DB2.

Au cours d’une tentative d’accès à un poste de table avec l’un des codes-fonctions : GD, GP, IP, WP, DP, GT, WT, ST, DT, GS, GH, RV, NS ou PS, le système ne trouve pas les informations relatives à la table dans DB2.

SPITAB 61

Explication du SPITAB 61 :

Absence d’autorisation sous DB2.

Au cours d’une tentative d’accès ou de mise à jour d’une table DB2, l’accesseur SPITAB a rencontré un code SQL spécifiant une absence d’autorité au niveau de DB2 (SQL code égal à -164, -551, -552, -922, -923 ou -924). Les codes-fonctions exécutés peuvent être : GD, GP, IP, WP, DP, GT, WT, ST, DT, GS, GH, NP, RW, NS, PS. Dans ce cas, le code status de la zone PCB est valorisé à ‘ON’ (Opération Non autorisée).

SPITAB 62

Explication du SPITAB 62 :

Deadlock ou interblocage entre utilisateurs sous DB2.

Au cours d’une tentative d’accès ou de mise à jour d’une table DB2, l’accesseur SPITAB a rencontré un code SQL spécifiant un deadlock ou un interblocage entre utilisateurs (SQL code égal à –901, –902, –904, –911 ou –913). Les codes-fonctions exécutés peuvent être : GD, GP, IP, WP, DP, GT, WT, ST, DT, GS, GH, RW, NP, NS, PS. Dans ce cas le code status de la zone PCB est valorisé à ‘FD‘.

En cas de deadlock, l’accesseur boucle sur l’exécution de la commande jusqu’à ce que celle-ci soit exécutée ou que le nombre maximum de tentatives soit dépassé. Ce nombre est précisé à l’installation (paramètre NBREL). Si ce nombre est dépassé, alors l’accesseur renvoi un code retour égal à 62.

SPITAB 63

Explication du SPITAB 63 :

Violation de la règle d’intégrité référentielle sous DB2.

Au cours d’une tentative de suppression de poste d’une table DB2, l’accesseur SPITAB a rencontré un code SQL spécifiant une violation de la règle d’intégrité de DB2 (SQL code égal à –530)

CODE RETOUR -797

THE TRIGGER trigger-name IS DEFINED WITH AN UNSUPPORTED TRIGGERED SQL STATEMENT

Explication :
La définition du déclencheur inclut une instruction SQL déclenchée non prise en charge. Les instructions SQL autorisées en tant qu’instructions SQL déclenchées sont définies dans la rubrique de déclencheur CREATE TRIGGER (de base ou avancée) appropriée. Les fragments de syntaxe SQL-trigger-body et trigger-SQL-statement, ainsi que les descriptions associées, documentent des règles supplémentaires sur ce qui est autorisé dans le corps d’un déclencheur.

Action du système :
L’instruction CREATE TRIGGER ne peut pas être exécutée et le déclencheur n’est pas créé.

Réponse du programmeur :
Vérifiez les instructions SQL déclenchées dans le déclencheur pour toute instruction qui n’est pas répertoriée dans CREATE TRIGGER (basic) ou SQL-procedure-statement, et supprimez l’instruction.

SQLSTATE :
42987

CODE RETOUR -798

A VALUE CANNOT BE SPECIFIED FOR COLUMN column-name WHICH IS DEFINED AS GENERATED ALWAYS

Explication :
Lors de l’insertion ou de la mise à jour d’une ligne dans une table, une valeur a été spécifiée pour une colonne définie avec les attributs GENERATED ALWAYS, sa valeur n’est pas définie avec le mot clé DEFAULT et :

  • Les valeurs de variable d’indicateur étendu ne sont pas activées.
  • Les valeurs de variable d’indicateur étendu sont activées, mais aucune des valeurs attendues DEFAULT (-5) ou UNASSIGNED (-7) n’a été fournie.

column-name
Le nom de la colonne.

Les colonnes GENERATED ALWAYS ne doivent pas être spécifiées dans la liste de colonnes pour une opération d’insertion ou dans la clause SET pour une opération de mise à jour, sauf si le mot-clé DEFAULT est spécifié.

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

Réponse du programmeur :
Supprimez la colonne de la liste des colonnes ou de la clause SET, ou spécifiez DEFAULT comme valeur de colonne.

Vous pouvez utiliser la clause OVERRIDING USER VALUE dans une instruction INSERT comme solution possible à cette situation.

SQLSTATE :
428C9

CODE RETOUR -785

USE OF SQLCODE OR SQLSTATE IS NOT VALID

Explication :
L’utilisation de SQLCODE ou SQLSTATE dans un corps de routine SQL n’est pas valide pour l’une des raisons suivantes :

  • SQLCODE ou SQLSTATE a été spécifié comme nom de paramètre.
  • SQLCODE n’est pas déclaré en tant que INTEGER dans une clause de déclaration de codes de retour.
  • SQLSTATE n’est pas déclaré en tant que CHAR(5) dans une clause de déclaration de codes de retour.
  • SQLCODE ou SQLSTATE reçoit la valeur NULL.

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

Réponse de l’utilisateur :
Corrigez la liste des paramètres, la déclaration d’une variable SQLCODE ou SQLSTATE, ou corrigez l’affectation d’une valeur à une variable SQLCODE ou SQLSTATE.

SQLSTATE :
428D8

CODE RETOUR -787

RESIGNAL STATEMENT ISSUED OUTSIDE OF A HANDLER

Explication :
L’instruction RESIGNAL, spécifiée dans une procédure SQL, doit être spécifiée à l’intérieur d’un gestionnaire.

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

Réponse du programmeur :
Supprimez l’instruction RESIGNAL ou utilisez une instruction SIGNAL. Réessayez la demande.

SQLSTATE :
0K000

CODE RETOUR -788

THE SAME ROW OF TARGET TABLE table-name WAS IDENTIFIED MORE THAN ONCE FOR AN UPDATE, DELETE, OR CHANGE OPERATION OF THE MERGE STATEMENT

Explication :
La condition de recherche ON de l’instruction MERGE correspondait à une seule ligne de la table cible avec plusieurs lignes de la référence de table source. Cela peut entraîner plusieurs opérations sur la ligne cible avec une opération de mise à jour ou de suppression, ce qui n’est pas autorisé.

table-name
Nom de la table cible de l’instruction MERGE.

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

Réponse du programmeur :
Effectuez l’une des actions suivantes :

  • Corrigez la condition de recherche pour vous assurer que chaque ligne de la table cible correspond à une seule ligne de la table source.
  • Agrégez les lignes de la table source qui correspondent à la ligne de la table cible à l’aide des fonctions GROUP BY.
  • Utilisez l’expression OLAP ROW_NUMBER() pour générer des lignes uniques.

SQLSTATE :
21506

CODE RETOUR -789

THE DATA TYPE OR OTHER ATTRIBUTES FOR PARAMETER OR SQL VARIABLE name ARE NOT SUPPORTED IN THE ROUTINE

Explication :
Cette erreur est émise dans les situations suivantes :

  • Une valeur par défaut ne peut pas être spécifiée pour un paramètre de type ARRAY. Seul DEFAULT NULL peut être spécifié explicitement si nom-type-tableau est spécifié.
  • Un paramètre de table (TABLE LIKE) ne peut pas être spécifié lors de l’ajout ou du remplacement d’une version d’une procédure existante par une instruction CREATE OR REPLACE.

name 
Le nom du paramètre ou de la variable SQL.

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

Réponse du programmeur :
Ne spécifiez pas de valeur par défaut pour un paramètre de type ARRAY.

Ne spécifiez pas de paramètre de table.

SQLSTATE :
429BB