Tous les articles par Mr COBOL

CODE RETOUR -615

operation-type IS NOT ALLOWED ON A PACKAGE IN USE

Explication
L’opération ne peut pas être effectuée car le package est utilisé par le même processus d’application ou le package dépend d’un objet qui est la cible d’une instruction DROP.

operation-type
Type d’opération de liaison (BIND, REBIND ou DROP).

Action du système
L’opération BIND, REBIND ou DROP sur le package n’est pas effectuée.

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

  • Modifiez l’application pour appeler l’opération BIND, REBIND ou DROP lorsque le package n’est pas utilisé par le même processus d’application.
  • Supprimez l’objet lorsque le package n’est pas utilisé.

SQLSTATE
55006

CODE RETOUR -614

THE INDEX CANNOT BE CREATED OR ALTERED, OR THE LENGTH OF A COLUMN CANNOT BE CHANGED BECAUSE THE SUM OF THE INTERNAL LENGTHS OF THE COLUMNS FOR THE INDEX IS GREATER THAN THE ALLOWABLE MAXIMUM

Explication
L’index n’a pas pu être créé ou la longueur d’une colonne ne peut pas être modifiée car la somme des longueurs internes des colonnes clés dépasserait le maximum autorisé. La longueur de clé maximale autorisée est la suivante :

  • Pour les index PADDED, la somme des attributs de longueur des colonnes ne doit pas être supérieure à 2000-n, où n est le nombre de colonnes qui contiennent des valeurs NULL.
  • Pour les index NOT PADDED, la somme des attributs de longueur des colonnes ne doit pas être supérieure à 2000 – n – 2m – 3d, où n est le nombre de colonnes “nullables”, m est le nombre de colonnes de longueur variable et d est le nombre des colonnes DECFLOAT.

Action du système
L’instruction ne peut pas être traitée. L’index spécifié n’a pas été créé ou la longueur de la colonne n’a pas été modifiée.

Réponse du programmeur
La définition de l’index doit être modifiée (éventuellement en éliminant une ou plusieurs colonnes clés) pour réduire la longueur de la clé au maximum autorisé.

SQLSTATE
54008

CODE RETOUR -613

THE PRIMARY KEY OR A HASH KEY OR A UNIQUE CONSTRAINT IS TOO LONG OR HAS TOO MANY COLUMNS AND PERIODS

Explication
Le nombre de colonnes et de périodes définies pour une contrainte PRIMARY KEY ou UNIQUE est trop important. Les deux conditions suivantes doivent être remplies :

  • Le total du nombre de colonnes et de deux fois le nombre de périodes identifiées ne doit pas dépasser 64.
  • La somme des attributs de longueur de colonne des colonnes identifiées et des colonnes de début et de fin de toute période identifiée ne doit pas dépasser la limite autorisée pour le type de contrainte.

Si l’instruction défaillante était une instruction ALTER TABLE qui incluait la clause SET DATA TYPE pour modifier la définition d’une colonne existante, une colonne en cours de modification fait partie d’une contrainte unique ou principale. La nouvelle somme des longueurs des colonnes des clés dépasse 2000-n-2m, où n est le nombre de colonnes “nullables” et m est le nombre de colonnes de longueur variable. Cette somme dépasse actuellement le nombre maximum autorisé.

Si l’instruction défaillante était une instruction ALTER TABLE avec une spécification PARTITIONING KEY, seules 64 colonnes peuvent être spécifiées et les longueurs combinées de toutes les colonnes spécifiées dans la clause PARTITIONING KEY dépassent la longueur maximale de 255-n, où n est le nombre de colonnes pouvant contenir des valeurs nulles.

L’instruction défaillante peut avoir été CREATE TABLE avec une spécification ORGANIZE BY HASH ou ALTER TABLE avec une spécification ADD ORGANIZE BY HASH.

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

Réponse du programmeur
Modifiez la définition de la table pour rester dans les limites prescrites.

SQLSTATE
54008

CODE RETOUR -612

identifier IS A DUPLICATE NAME

Explication
Un nom non unique a été spécifié lorsqu’un nom unique est requis. Les noms de colonne et de période doivent être uniques dans un index, une table ou une vue, et dans la clause UPDATE OF d’une définition de déclencheur.

identifier
Le nom non unique.

Les causes possibles de cette erreur incluent :

Instructions CREATE INDEX et ALTER INDEX

  • Le même nom de colonne est spécifié pour deux colonnes ou plus de l’index.

Instructions CREATE TABLE et ALTER TABLE

  • Le même nom de colonne est spécifié pour deux colonnes ou plus de la table.
  • Une contrainte spécifie une colonne XML et la définition de contrainte contient une expression qui appelle la fonction XMLQUERY ou utilise le prédicat XMLEXISTS.
  • Le même nom de période est spécifié pour deux colonnes ou plus de la table.
  • La même période est spécifiée plusieurs fois dans la contrainte.
  • Une période et une colonne sont définis avec le même nom.
  • Pour une instruction CREATE TABLE, une liste de colonnes d’une clause PRIMARY KEY, FOREIGN KEY ou UNIQUE contient au moins deux occurrences du même nom de colonne.
  • Une colonne est spécifiée plusieurs fois dans une instruction ALTER TABLE. À une seule exception près, une colonne ne peut pas être spécifiée dans plusieurs clauses d’une instruction ALTER TABLE. L’exception est lorsque les deux clauses sont ALTER COLUMN et ADD CHECK CONSTRAINT.

Instructions CREATE VIEW

  • Le même nom de colonne est spécifié pour deux colonnes ou plus de la vue

Instructions CREATE TRIGGER

  • Pour une instruction CREATE TRIGGER, la clause UPDATE OF spécifie plusieurs fois le même nom de colonne.

Fonction XMLQUERY ou prédicat XMLEXISTS

  • La clause PASSING d’une fonction XMLQUERY ou d’un prédicat XMLEXISTS contient deux arguments portant le même nom.
  • Une liste d’arguments XMLQUERY ou XMLEXISTS contient deux arguments portant le même nom.

Instructions de modification des données SQL

  • L’instruction de modification des données SQL utilise une colonne d’inclusion et le nom de colonne spécifié est le même qu’un autre nom de colonne de la table ou vue cible, ou d’une autre colonne d’inclusion.

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

Réponse du programmeur
Corrigez la syntaxe de l’instruction et relancez l’instruction.

SQLSTATE
42711

CODE RETOUR -611

ONLY LOCKMAX 0 CAN BE SPECIFIED WHEN THE LOCK SIZE OF THE TABLESPACE IS TABLESPACE OR TABLE

Explication
Ce message est émis lorsque :

  • Le LOCKSIZE de l’espace table est TABLESPACE ou TABLE, et LOCKMAX est modifié ou créé en tant que valeur différente de zéro.
  • Le LOCKSIZE de l’espace table est modifié en TABLESPACE ou TABLE, et LOCKMAX est modifié ou créé en tant que valeur différente de zéro.

Si LOCKSIZE est TABLESPACE ou TABLE, LOCKMAX doit être égal à 0 car l’escalade de verrou n’est pas prise en charge à partir de ces niveaux.

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

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

  • Relancez l’instruction avec LOCKMAX 0.
  • Remplacez le LOCKSIZE de l’espace table par une valeur autre que TABLESPACE ou TABLE.

SQLSTATE
53088

CODE RETOUR -607

OPERATION OR OPTION operation IS NOT DEFINED FOR THIS OBJECT

Explication
L’opération ou l’option ne peut pas être exécutée sur l’objet spécifié dans l’instruction SQL.

Par exemple, ce code SQL peut être émis pour les situations suivantes :

  • La propriété de la plupart des objets système ne peut pas être transférée si leur PROPRIÉTAIRE est SYSIBM ou si leur schéma commence par SYS.
  • LOGGED et NOT LOGGED ne peuvent pas être définis lorsque vous créez ou modifiez un espace table dans la base de données du catalogue Db2 (DSNDB06).
  • Les objets de catalogue et de répertoire ne peuvent pas être clonés.
  • Les opérations de modification de données telles que celles-ci ne peuvent pas être effectuées sur une table de répertoire :
    1. ALTER TABLE
    2. ALTER TABLESPACE
    3. DELETE
    4. MERGE
    5. UPDATE
    6. RENAME TABLE
  • Les opérations suivantes ne sont pas autorisées pour un index sur une table de répertoire :
    1. ALTER INDEX
    2. CREATE INDEX
    3. DROP INDEX
    4. RENAME INDEX
  • Une table de répertoire ne peut pas être :
    1. La table parente dans une relation référentielle
    2. La table de déclenchement dans un déclencheur
  • Une instruction ALTER TABLE qui spécifie une opération ne peut pas être spécifiée sur une table de catalogue.
  • Une spécification de période ne doit pas être utilisée si la référence de table n’est pas une table.
  • L’opération est une instruction SELECT et une cible de l’opération est un objet de répertoire. Db2 ne peut pas convertir l’instruction SELECT au niveau d’isolement UR. Par exemple, l’instruction SQL suivante ne peut pas être exécutée car l’opération SELECT sur l’objet de répertoire SYSIBM.SYSLGRNX ne peut pas être convertie au niveau d’isolement UR :

UPDATE T1 SET C1 = (SELECT C1 FROM T1) WHERE EXISTS(SELECT LGRDBID FROM SYSIBM.SYSLGRNX);

  • FL 508 Une instruction ALTER TABLESPACE qui inclut une clause MOVE TABLE ne doit pas spécifier un espace table de catalogue ou de répertoire.

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

Réponse du programmeur
Si une option de l’instruction SQL n’est pas autorisée pour cet objet, modifiez l’instruction SQL et soumettez à nouveau l’instruction. Si une opération n’est pas définie pour l’objet, l’instruction ne peut pas être exécutée.

SQLSTATE
42832

CODE RETOUR -604

A DATA TYPE DEFINITION SPECIFIES AN INVALID ATTRIBUTE SUCH AS LENGTH, PRECISION, OR SCALE ATTRIBUTE

Explication
Une définition de type de données dans une instruction CREATE ou ALTER est incorrecte de l’une des manières suivantes :

  • La définition du type de données contient une spécification d’attribut de longueur, de précision ou d’échelle non valide.
  • La spécification du type de données peut être incorrecte ou invalide.
  • La définition de colonne dans une vue référencée dans une instruction de vue CREATE TABLE LIKE a une longueur non valide.

Action du système
L’instruction ne peut pas être traitée. L’objet spécifié n’a pas été créé ou modifié.

Réponse du programmeur
Corrigez la syntaxe de l’instruction comme suit et soumettez à nouveau l’instruction :

  • Corrigez la définition du type de données dans l’instruction pour avoir un attribut de longueur, de précision ou d’échelle valide.
  • Assurez-vous que les types de données spécifiés sont valides pour l’instruction CREATE ou ALTER.
  • Corrigez la longueur non valide dans la définition de colonne de la vue référencée dans l’instruction CREATE TABLE LIKE.

SQLSTATE
42611

CODE RETOUR -603

A UNIQUE INDEX CANNOT BE CREATED BECAUSE THE TABLE CONTAINS ROWS WHICH ARE DUPLICATES WITH RESPECT TO THE VALUES OF THE IDENTIFIED COLUMNS AND PERIODS

Explication
L’index défini dans l’instruction CREATE INDEX n’a pas pu être créé comme unique car la table spécifiée contient déjà des lignes en double par rapport aux valeurs des colonnes et des périodes identifiées.

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

Réponse du programmeur
Examinez les données pour déterminer si les données en double sont valides ou non. Vous pouvez également envisager de créer un index non unique.

SQLSTATE
23515

CODE RETOUR -602

TOO MANY COLUMNS, PERIODS, OR KEY-EXPRESSIONS SPECIFIED IN A CREATE INDEX OR ALTER INDEX STATEMENT

Explication
L’une des spécifications suivantes dans une instruction CREATE INDEX ou ALTER INDEX dépasse la valeur maximale autorisée de 64 :

  • La somme du nombre de colonnes et du double du nombre de périodes identifiées : colonnes + (2 × periods)
  • Le nombre de key-expressions.

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

Réponse du programmeur
Modifiez la définition de l’index pour qu’elle soit conforme à la limite de colonne ou d’expression clé imposée par le système de 64.

SQLSTATE
54008

CODE RETOUR -594

ATTEMPT TO CREATE A NULLABLE ROWID OR DISTINCT TYPE COLUMN column-name

Explication
Une instruction CREATE VIEW a tenté de créer une nouvelle vue avec une colonne ROWID null. Les colonnes ROWID (ou les colonnes de type distinct pour lesquelles le type source est un ROWID) ne prennent pas en charge les valeurs NULL. L’une des situations suivantes s’est produite :

  • La sous-sélection d’une instruction CREATE VIEW implique une jointure externe pour laquelle une colonne de la table de résultats est une colonne ROWID qui doit autoriser les valeurs NULL.

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

Réponse du programmeur
Modifiez le contenu de l’instruction afin qu’elle n’essaie pas de créer une colonne ROWID qui doit autoriser les valeurs NULL.

SQLSTATE
42831