Tous les articles par Mr COBOL

CODE RETOUR -783

SELECT LIST FOR CURSOR cursor-name IN FOR STATEMENT IS NOT VALID. COLUMN column-name IS NOT UNIQUE

Explication :
La liste SELECT de l’instruction FOR doit contenir des noms de colonne uniques. La liste SELECT spécifiée contient des noms de colonne en double ou des expressions sans nom.
– Si deux noms de colonne sont identiques, le nom de la colonne est column-name.
– Si le problème est le résultat d’expressions sans nom, *N est renvoyé pour column-name.

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

Réponse du programmeur :
Spécifiez des noms de colonne uniques dans la liste SELECT spécifiée dans l’instruction FOR.

SQLSTATE :
42738

CODE RETOUR -784

CONSTRAINT constraint-name CANNOT BE DROPPED.

Explication :
Une contrainte générée implicitement lorsqu’une période BUSINESS_TIME est définie ne peut pas être supprimée à l’aide d’une instruction ALTER TABLE avec une clause DROP CHECK ou DROP CONSTRAINT.

constraint-name
Le nom de la contrainte qui ne peut pas être supprimée.

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

Réponse de l’utilisateur :
Aucune action n’est requise.

SQLSTATE :
42860

CODE RETOUR -771

INVALID SPECIFICATION OF A ROWID COLUMN

Explication :
Pour une instruction ALTER TABLE ou CREATE TABLE, la spécification d’une colonne ROWID peut être invalide pour l’une des raisons suivantes :

  • Une colonne ROWID ne peut pas être ajoutée à une table temporaire.
  • Une colonne ROWID ne peut pas être spécifiée dans une clause de contrainte référentielle en tant que colonne d’une clé étrangère.
  • Une colonne ROWID ne peut pas être une colonne d’une clé primaire ou d’une clé unique.
  • Une colonne ROWID ne peut pas être une colonne dans une table avec une procédure d’édition définie avec une sensibilité d’attribut de ligne.
  • Une colonne ROWID ne peut pas faire partie de la liste de colonnes implicite ou explicite pour fullselect dans la clause as-result-table d’une instruction CREATE TABLE ou DECLARE GLOBAL TEMPORARY TABLE.
  • Une colonne ROWID générée implicitement ne peut pas être supprimée.
  • Une colonne ROWID définie comme GENERATED BY DEFAULT ne peut pas être supprimée si la table contient une colonne ROWID générée implicitement.
  • Une colonne ROWID ne peut pas être supprimée si la table contient des colonnes LOB qui dépendent de la colonne ROWID.

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

Réponse du programmeur :
Corrigez la syntaxe et soumettez à nouveau la déclaration.

SQLSTATE :
428C7

CODE RETOUR -773

CASE NOT FOUND FOR CASE STATEMENT

Explication :
Une instruction case sans clause ELSE a été spécifiée dans le corps d’une routine SQL. Aucune des conditions spécifiées dans l’instruction CASE n’a été remplie.

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

Réponse du programmeur :
Modifiez l’instruction CASE pour gérer toutes les conditions qui peuvent se produire.

SQLSTATE :
20000

CODE RETOUR -776

USE OF CURSOR cursor-name IS NOT VALID

Explication :
Curseur cursor-name est spécifié comme nom de curseur dans une instruction FOR d’une procédure SQL. Le curseur ne peut pas être spécifié sur une instruction CLOSE, FETCH ou OPEN dans l’instruction FOR.

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

Réponse du programmeur :
Supprimez l’instruction CLOSE, FETCH ou OPEN.

SQLSTATE :
428D4

CODE RETOUR -778

ENDING LABEL label-name DOES NOT MATCH THE BEGINNING LABEL

Explication :
L’étiquette qui est spécifiée à la fin d’une instruction composée, WHILE, REPEAT ou LOOP dans une routine SQL n’est pas la même que l’étiquette au début de l’instruction. L’étiquette de fin ne peut pas être spécifiée si l’étiquette de début n’est pas spécifiée.

label-name
Le nom donné pour l’étiquette de fin.

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

Réponse de l’utilisateur :
Assurez-vous que l’étiquette de fin est la même que l’étiquette de début pour l’instruction composée, WHILE, REPEAT ou LOOP.

SQLSTATE :
428D5

CODE RETOUR -779

LABEL label SPECIFIED ON A GOTO, ITERATE, OR LEAVE STATEMENT IS NOT VALID

Explication :
Le label (étiquette) label est spécifié comme label cible pour une instruction GOTO, ITERATE ou LEAVE. label n’est pas défini, n’est pas défini dans une portée accessible à l’instruction actuelle ou à l’instruction actuelle, ou n’est pas une étiquette valide pour l’instruction défaillante.

Cette erreur peut se produire avec une instruction GOTO, ITERATE ou LEAVE pour l’une des raisons suivantes :
– Si l’instruction défaillante se trouve dans un gestionnaire de conditions, le label doit être définie dans ce gestionnaire de conditions.
– Si l’instruction défaillante n’est pas dans un gestionnaire de conditions, alors le label ne doit pas être définie dans un gestionnaire de conditions.

De plus, cette erreur peut être émise pour les instructions ITERATE ou LEAVE pour l’une des raisons suivantes :
– Si l’instruction défaillante est une instruction ITERATE, l’étiquette doit être définie comme une étiquette pour une instruction FOR, LOOP, REPEAT ou WHILE, et l’instruction ITERATE doit être dans cette instruction FOR, LOOP, REPEAT ou WHILE, ou dans un bloc de code directement ou indirectement imbriqué dans cette instruction.
– Si l’instruction défaillante est une instruction LEAVE, le label label doit être définie comme une étiquette pour une instruction composée, FOR, LOOP, REPEAT ou WHILE, et l’instruction LEAVE doit être dans cette instruction composée, FOR, LOOP, REPEAT ou WHILE. , ou dans un bloc de code directement ou indirectement imbriqué dans cette instruction.

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

Réponse de l’utilisateur :
Spécifiez un label valide pour la cible de l’instruction GOTO, ITERATE ou LEAVE.

SQLSTATE :
42736

CODE RETOUR -767

MISSING OR INVALID COLUMN SPECIFICATION FOR INDEX index-name

Explication :
L’instruction CREATE INDEX a échoué pour l’une des raisons suivantes :
– Un index sur une table non auxiliaire doit spécifier les colonnes sur lesquelles l’index est défini.
– Un index sur une table auxiliaire ne doit pas avoir de spécification de colonne.

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

Réponse du programmeur :
Corrigez la syntaxe de l’instruction CREATE INDEX.
– Pour créer un index sur une table non auxiliaire, spécifiez les colonnes sur lesquelles l’index est défini.
– Pour créer un index sur une table auxiliaire, ne spécifiez le nom d’aucune colonne.

SQLSTATE :
42626

CODE RETOUR -768

AN AUXILIARY TABLE ALREADY EXISTS FOR THE SPECIFIED COLUMN OR PARTITION

Explication :
Tentative de création d’une table auxiliaire, mais une table auxiliaire pour la colonne ou la partition spécifiée existe déjà. Lorsque la table de base appartient à un espace table non partitionné, il ne peut y avoir qu’une seule table auxiliaire par colonne LOB de la table. Lorsque la table de base appartient à un espace table partitionné, pour toute colonne LOB donnée, toutes les valeurs de la colonne LOB pour une partition donnée sont stockées dans leur propre table auxiliaire. Il doit y avoir une table auxiliaire par partition de l’espace table de base.

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

Réponse du programmeur :
Vérifiez que le nom de table, le nom de colonne et, le cas échéant, le numéro de partition corrects ont été spécifiés. Si la table auxiliaire existante doit avoir un nom différent, exécutez l’instruction RENAME TABLE pour renommer la table auxiliaire.

SQLSTATE :
560A5

CODE RETOUR -769

SPECIFICATION OF CREATE AUX TABLE DOES NOT MATCH THE CHARACTERISTICS OF THE BASE TABLE

Explication :
Soit une tentative a été faite pour créer une table auxiliaire :
– à l’aide de la clause PART et la table de base spécifiée n’est pas partitionnée ou
– sans utiliser la clause PART et la table de base spécifiée est partitionnée

Si la table de base n’est pas partitionnée, le mot clé PART n’est pas autorisé dans l’instruction CREATE AUXILIARY TABLE. Si la table de base est partitionnée, le mot-clé PART doit être spécifié.

Action du système :
La table auxiliaire n’a pas été créée.

Réponse du programmeur :
Vérifiez si le nom de la table de base spécifié dans l’instruction CREATE AUXILIARY TABLE est correct. S’il est correct et que la table n’est pas partitionnée, supprimez la clause PART de l’instruction. S’il est correct et que la table est partitionnée, ajoutez la clause PART à l’instruction. Si le nom de table n’est pas correct, corrigez-le et vérifiez également que le nom de colonne correct est spécifié.

SQLSTATE :
53096