Tous les articles par Mr COBOL

CODE RETOUR -212

name IS SPECIFIED MORE THAN ONCE IN THE REFERENCING CLAUSE OF A TRIGGER DEFINITION

Explication :
La clause REFERENCING d’une instruction CREATE TRIGGER a spécifié le même nom pour plusieurs des noms de corrélation OLD ou NEW ou pour les identificateurs OLD_TABLE ou NEW_TABLE. name est le nom qui a été spécifié plusieurs fois.

Action du système :
L’instruction ne peut pas être traitée. Le déclencheur n’a pas été créé.

Réponse du programmeur :
Modifiez l’instruction pour spécifier des noms uniques pour toutes les variables et tables de transition dans la clause REFERENCING et soumettez à nouveau la demande CREATE TRIGGER.

ETATSQL :
42712

CODE RETOUR -197

A QUALIFIED COLUMN NAME IS NOT ALLOWED IN THE ORDER BY CLAUSE WHEN A SET OPERATOR IS ALSO SPECIFIED

Explication :
La clause ORDER BY d’un fullselect qui inclut un opérateur d’ensemble, tel que UNION, EXCEPT ou INTERSECT, ne peut pas avoir de noms de colonnes qualifiés.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Modifiez l’instruction pour vous assurer que tous les noms de colonne dans la clause ORDER BY ne sont pas qualifiés.

ETATSQL :
42877

CODE RETOUR -196

COLUMN table-name.column-name CANNOT BE DROPPED. REASON = reason-code.

Explication :
Une tentative de suppression de la colonne spécifiée a été effectuée, mais la colonne ne peut pas être supprimée pour la raison indiquée.

table-name
Le nom de la table.
column-name
Le nom de la colonne.

reason-code
Une valeur numérique qui indique la raison pour laquelle l’instruction ne peut pas être exécutée.

1

La colonne ne peut pas être supprimée car elle fait partie de la clé de hachage ou de la clé de partitionnement.

3

La colonne ne peut pas être supprimée car il s’agit d’une colonne d’étiquette de sécurité.

4

La colonne ne peut pas être supprimée car elle fait partie d’un point.

5

La colonne ne peut pas être supprimée car la table est une table temporelle de période système ou une table activée pour l’archivage.

6

La colonne ne peut pas être supprimée car il s’agit d’une colonne d’une table d’historique ou d’une table d’archive.

8

La table, table-name, est définie avec une procédure d’édition ou une procédure de validation.

9

La table, table-name, est référencée (directement ou indirectement) dans la définition d’une table de requête matérialisée.

10

Une contrainte de vérification est définie sur la table, table-name.

11

Un index étendu est défini sur la table, table-name.

12

Un déclencheur est défini sur la table, table-name ou un déclencheur INSTEAD OF est défini sur une vue qui dépend de la table.

13

Une autorisation de ligne dépend de la table, table-name.

14

Un masque de colonne dépend de la table, table-name.

15

Une fonction de table SQL dépend de la table, table-name.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Effectuez l’action qui correspond à la valeur du reason-code :

1

  • Si la colonne fait partie d’une clé de partitionnement, supprimez la table et créez-la à nouveau sans la colonne qui doit être supprimée et redéfinissez la clé de partitionnement.
  • Si la colonne fait partie d’une clé de hachage :
    1. Modifiez la table pour supprimer l’organisation de hachage.
    2. Déposez la colonne.
    3. Exécutez l’utilitaire REORG sur l’espace table contenant afin que l’opération de suppression de colonne prenne effet.
    4. Modifiez la table pour ajouter l’organisation de hachage.

Comme alternative, envisagez de supprimer la table et de la recréer sans la colonne qui doit être supprimée.

3

Supprimez la table et créez-la à nouveau, sans créer la colonne d’étiquette de sécurité.

4

Supprimez la table et créez-la à nouveau, sans créer la colonne qui doit être supprimée.

5

Modifiez le tableau pour supprimer la gestion des versions des données de période système ou désactiver l’archivage. (Émettez ALTER TABLE avec la clause DROP VERSIONING ou DISABLE ARCHIVE.) Supprimez ensuite la colonne de la table.
Si le contrôle de version ou l’archivage de la période système est toujours nécessaire, supprimez la colonne de la table d’historique ou de la table d’archivage précédemment associée. Ajoutez ensuite le contrôle de version ou l’archivage des données de période système à la table.

6

Supprimez la gestion des versions ou l’archivage afin que la table ne soit plus une table d’historique ou une table d’archive. (Utilisez l’instruction ALTER TABLE avec la clause DROP VERSIONING ou DISABLE ARCHIVE sur la table temporelle de période système ou la table activée pour l’archivage associée.) Supprimez ensuite la colonne de la table.
Si la gestion des versions ou l’archivage est toujours nécessaire, supprimez la colonne de la table temporelle de période système ou de la table activée pour l’archivage. Ajoutez ensuite le contrôle de version ou l’archivage à cette table.

8

Si la table est définie avec une procédure de validation, modifiez la table pour supprimer la procédure valide, puis supprimez la colonne. Si la table est définie avec une procédure d’édition, supprimez la table et recréez-la sans la colonne qui doit être supprimée.

9

Supprimez toutes les tables de requêtes matérialisées qui font référence à la table, puis supprimez la colonne.

10

Supprimez et vérifiez les contraintes qui font référence à la table, puis supprimez la colonne.

11

Supprimez tous les index étendus qui font référence à la table, puis supprimez la colonne.

12

Supprimez tous les déclencheurs qui font référence à la table ou aux vues dépendantes, puis supprimez la colonne.

13

Supprimez toutes les autorisations de ligne qui font référence à la table, puis supprimez la colonne.

14

Supprimez tous les masques de colonne qui font référence à la table, puis supprimez la colonne.

15

Supprimez toutes les fonctions de table SQL qui font référence à la table, puis supprimez la colonne.

ETATSQL :
42817

CODE RETOUR -195

LAST COLUMN OF table-name CANNOT BE DROPPED

Explication :

table-name
Le nom de la table.

Tentative de suppression d’une colonne à l’aide d’une instruction ALTER TABLE. La colonne ne peut pas être supprimée de la table table-name car au moins une des colonnes existantes doit être conservée lors de la modification d’une table.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Assurez-vous que la table, table-name, aura au moins une colonne une fois l’instruction ALTER terminée. Si toutes les colonnes doivent être supprimées, envisagez de supprimer la table (et si nécessaire, créez-la à nouveau).

ETATSQL :
42814

CODE RETOUR -191

A STRING CANNOT BE USED BECAUSE IT IS INVALID MIXED DATA

Explication :
L’opération nécessitait la conversion d’une chaîne de caractères de données mixtes en un jeu de caractères codés différent. La chaîne n’a pas pu être convertie car elle n’est pas conforme aux règles relatives aux données mixtes bien formées.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Si la chaîne contient les informations souhaitées, la description de la colonne ou de la variable hôte doit être modifiée de MIXED DATA en BIT ou SBCS DATA. Si la description de la colonne ou de la variable hôte est correcte, la chaîne est le problème et elle doit être modifiée pour se conformer aux règles des données mixtes bien formées.

ETATSQL :
22504

CODE RETOUR -190

THE ATTRIBUTES SPECIFIED FOR THE COLUMN table-name.column-name ARE NOT COMPATIBLE WITH THE EXISTING COLUMN DEFINITION

Explication :
Les attributs de la colonne dans une instruction ALTER TABLE ne sont pas compatibles avec les attributs de la colonne existante.

table-name
Le nom de la table.
column-name
Le nom de la colonne.

Les raisons possibles de cette erreur incluent :

Type de données incompatible
L’instruction ALTER TABLE ALTER COLUMN SET DATA TYPE permet de modifier les colonnes des types de données suivants uniquement :

  • Personnage
  • Numérique
  • Binaire

Si la clause SET DATA TYPE a été spécifiée, la colonne existante n’est pas compatible avec le nouveau type de données qui a été spécifié ou est d’un type de données qui ne peut pas être modifié.

La colonne Identité est obligatoire
Les clauses suivantes ne peuvent être spécifiées que pour une colonne définie comme colonne d’identité :

  • RESTART
  • SET GENERATED
  • SET INCREMENT BY
  • SET MINVALUE and SET NO MINVALUE
  • SET MAXVALUE and SET NO MAXVALUE
  • SET CYCLE and SET NO CYCLE
  • SET CACHE and SET NO CACHE
  • SET ORDER and SET NO ORDER

Si l’une de ces clauses a été spécifiée, la colonne existante n’est pas définie en tant que colonne d’identité.

Les valeurs par défaut
Si une clause SET DEFAULT ou DROP DEFAULT a été spécifiée, la colonne existante soit :

  • N’a pas de valeur par défaut définie, ou la colonne a NOT NULL comme attribut null.
  • Est défini comme colonne d’identité, ROWID ou colonne d’horodatage de changement de ligne.

Modification des colonnes ROW BEGIN, ROW END ou TRANSACTION START ID
Si ALTER COLUMN a été spécifié pour remplacer la colonne par une colonne ROW BEGIN, ROW END ou TRANSACTION START ID :

  • La colonne est déjà définie en tant que colonne générée.
  • La colonne est déjà définie avec une valeur par défaut spécifiée par l’utilisateur. Exécutez une instruction ALTER TABLE pour supprimer la valeur par défaut. Ensuite, la définition de la colonne peut être modifiée.

Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Examinez l’instruction SQL et effectuez l’action appropriée, puis soumettez à nouveau l’instruction.

  • Modifiez l’instruction afin que les attributs spécifiés pour la colonne modifiée soient compatibles avec la définition de colonne existante.
  • Supprimez la spécification d’attribut incompatible.
  • Spécifiez une colonne différente.

ETATSQL :
42837

CODE RETOUR -189

CCSID ccsid IS INVALID

Explication :
Pour déterminer le sous-type d’une variable hôte d’entrée ou d’une colonne de résultat, la table du catalogue SYSSTRINGS a été accédée avec le CCSID spécifié et l’une des conditions d’erreur suivantes s’est produite :

  • Le CCSID n’est pas une valeur d’INCCSID ou d’OUTCCSID.
  • La colonne TRANSTYPE classe le CCSID comme GRAPHIC plutôt que CHARACTER.
  • Un CCSID graphique n’a pas été spécifié sur votre système.
  • Le CCSID est en dehors de la plage de valeurs acceptable. Le CCSID doit être compris entre 1 et 65533, inclus, ou la valeur 65535.
  • Un CCSID DBCS a été spécifié lors du transtypage vers CHAR, VARCHAR ou CLOB.
  • Un SBCS ou un CCSID mixte, ou 65535 a été spécifié lors du transtypage vers un type de données graphique.
  • Le CCSID 65535, qui n’est valide que pour les données avec l’attribut FOR BIT DATA, a été spécifié lors du transtypage vers un CLOB.

Cette erreur peut se produire lorsque SYSSTRINGS est accédé avec une paire de CCSID pour déterminer si une traduction est définie pour la paire. Dans ce cas, l’erreur est l’incohérence entre le type de données d’une chaîne et la classification TRANSTYPE de son CCSID (l’un est GRAPHIC et l’autre est CHARACTER).

Cette erreur peut également se produire lorsqu’un CCSID spécifié dans DECP n’existe pas en tant que valeur dans les colonnes INCCSID ou OUTCCSID de SYSSTRINGS.

Une autre raison pour laquelle cette erreur peut se produire est que vous utilisez peut-être l’une des fonctions graphiques intégrées, mais qu’aucun CCSID graphique n’a été spécifié lors de l’installation du système.

Action du système :
L’instruction ne peut pas être liée ou exécutée.

Réponse du programmeur :
Assurez-vous que le CCSID est valide et cohérent avec le type de données de la chaîne. Si un CCSID valide n’est pas répertorié dans une ligne intégrée de SYSSTRINGS, il peut être défini en insérant une ligne fournie par l’utilisateur. Si un CCSID valide est mal classé dans une ligne fournie par l’utilisateur, cette ligne peut être mise à jour pour corriger l’erreur.

Si aucun CCSID graphique n’a été spécifié lors de l’installation du système, mettez à jour votre DECP pour inclure un CCSID graphique et recyclez votre Db2.

ETATSQL :
22522

CODE RETOUR -188

THE STRING REPRESENTATION OF A NAME IS INVALID

Explication :
La variable hôte référencée dans l’instruction DESCRIBE ne contient pas de représentation sous forme de chaîne valide d’un nom. L’une des conditions d’erreur suivantes s’est produite.

  • Le premier octet de la variable est un point ou un blanc.
  • Le nombre d’identifiants est supérieur à 3.
  • Un identifiant est trop long.
  • Un point non contenu dans un identifiant délimité est suivi d’un point ou d’un blanc.
  • Un identifiant délimité est suivi d’un caractère autre qu’un point ou un blanc.
  • Un identifiant délimité ne se termine pas par un guillemet.


Action du système :
L’instruction ne peut pas être traitée.

Réponse du programmeur :
Corrigez la valeur de la variable hôte afin qu’elle soit une représentation sous forme de chaîne valide d’un nom.

ETATSQL :
22503

CODE RETOUR -173

UR IS SPECIFIED ON THE WITH CLAUSE BUT THE CURSOR IS NOT READ-ONLY

Explication :
Le curseur n’est pas un curseur en lecture seule. WITH UR ne peut être spécifié que si Db2 peut déterminer que le curseur est en lecture seule.

Action du système :
L’exécution de l’instruction échoue.

Réponse du programmeur :
Si le curseur est destiné à être en lecture seule mais est ambigu, ajoutez la clause FOR FETCH ONLY. Si le curseur peut être mis à jour, modifiez le niveau d’isolement spécifié dans la clause WITH.

ETATSQL :
42801

CODE RETOUR -152

THE DROP clause CLAUSE IN THE ALTER STATEMENT IS INVALID BECAUSE constraint-name IS A constraint-type

Explication :
La clause DROP clause d’une instruction ALTER TABLE a tenté de supprimer une contrainte qui ne correspond pas au constraint-type de la clause DROP. clause doit identifier un constraint-type approprié comme suit :

REFERENTIAL CONSTRAINT
La contrainte identifiée doit être une contrainte référentielle.
CHECK CONSTRAINT
La contrainte identifiée doit être une contrainte de vérification.
PRIMARY KEY CONSTRAINT
La contrainte identifiée doit être une contrainte de clé primaire.
UNIQUE KEY CONSTRAINT
La contrainte identifiée doit être une contrainte de clé unique.


Action du système :
L’instruction ALTER TABLE DROP ne peut pas être exécutée. Aucun objet n’a été lâché.

Réponse du programmeur :
Supprimez l’objet existant avec la clause DROP correcte de l’instruction ALTER TABLE.

ETATSQL :
42809