Tous les articles par Mr COBOL

CODE RETOUR -365

USE OF THE VALUE OF EXTENDED INDICATOR VARIABLE IN POSITION value-position IS NOT VALID.

Explication :
La valeur DEFAULT (-5) ou UNASSIGNED (-7) a été utilisée pour la variable d’indicateur étendu dans un contexte où elle n’est pas autorisée. Ces valeurs sont autorisées en tant que variables indicatrices uniquement dans les instructions INSERT, UPDATE et MERGE lorsque la variable hôte fournit la valeur source d’une valeur de colonne.

value-position
Identifie l’emplacement de la valeur de la variable d’indicateur étendu.

Lorsque les variables d’indicateur étendu sont activées :

  • Une expression ne doit pas être plus complexe qu’une référence à une variable hôte unique si l’indicateur est défini sur les valeurs d’indicateur étendu DEFAULT (-5) ou UNASSIGNED (-7), sauf qu’une spécification CAST est autorisée lorsque les conditions suivantes sont rencontré:
    1. La source de la spécification CAST est une variable hôte unique.
    2. Les attributs de données (type de données, longueur, précision et échelle) de la variable hôte sont les mêmes que le résultat de la spécification de transtypage.
  • Les valeurs de variables indicatrices étendues DEFAULT (-5) ou UNASSIGNED (-7) ne doivent pas être utilisées dans :
    1. Une expression qui implique plus qu’une variable hôte ou une variable hôte qui est explicitement transtypée.
    2. Toute expression autre que :
      • La liste d’affectation définie d’une opération UPDATE.
      • La liste des valeurs d’une opération INSERT.
      • Emplacements correspondants de l’expression dans une instruction MERGE.
      • Paramètre source-value d’une instruction MERGE.
      • La liste de sélection d’une instruction INSERT dans la clause FROM de l’instruction SELECT.

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

Réponse du programmeur système :
Remplacez la valeur de la variable d’indicateur étendu par une valeur autorisée pour le contexte dans lequel elle est utilisée

SQLSTATE :
22539

CODE RETOUR -363

THE EXTENDED INDICATOR VARIABLE VALUE FOR PARAMETER position-number IS OUT OF RANGE.

Explication :
La valeur de la variable d’indicateur étendu n’est pas valide.

position-number
La position ordinale du marqueur de paramètre.

Lorsque les variables indicatrices étendues sont activées, toutes les valeurs de variables indicatrices d’entrée négatives doivent être comprises entre -1 et -7 (inclus).

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

Réponse du programmeur système :
Corrigez la valeur et réémettez l’instruction.

SQLSTATE :
22010

CODE RETOUR -359

THE RANGE OF VALUES FOR THE IDENTITY COLUMN OR SEQUENCE IS EXHAUSTED

Explication :
Db2 a tenté de générer une valeur pour une colonne d’identité ou un objet de séquence. Cependant, toutes les valeurs autorisées ont déjà été attribuées.

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

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

  • Pour une colonne d’identité, redéfinissez la table avec une plage de valeurs plus large pour la colonne d’identité. Si une spécification MAXVALUE ou MINVALUE a été définie pour limiter la plage de valeurs à une plage inférieure à la plage du type de données de la colonne, la colonne peut être modifiée pour étendre la plage de valeurs valides. Sinon, la colonne d’identité doit être recréée, ce qui nécessite que la table soit recréée. Tout d’abord, supprimez la table existante ; Ensuite, recréez la table avec un type de données différent pour la colonne d’identité, en spécifiant un type de données qui a une plage de valeurs plus large que le type de données actuel pour la colonne d’identité.
  • Pour un objet séquence, redéfinissez la séquence avec une plage de valeurs plus large. Si une spécification MAXVALUE ou MINVALUE a été créée pour limiter la plage de valeurs à une plage inférieure à la plage du type de données, la séquence peut être modifiée pour étendre la plage de valeurs valides. Sinon, la séquence doit être recréée à l’aide de DROP SEQUENCE et CREATE SEQUENCE pour couvrir une plus grande plage de valeurs.

SQLSTATE :
23522

CODE RETOUR -356

COLUMN OR KEY EXPRESSION expression-number IS NOT VALID, REASON CODE = reason-code

Explication :
L’instruction CREATE INDEX ne peut pas être traitée car une colonne ou une expression clé n’est pas valide.

expression-number
Le numéro de la colonne ou de l’expression clé non valide.
reason-code
Une valeur numérique qui indique la raison de l’échec.

1

Contient une sous-requête.

2

Ne contient pas au moins une référence à une colonne.

3

Référence un registre spécial.

4

Inclut une expression CASE.

5

Comprend une fonction définie par l’utilisateur.

6

Apparaît plus d’une fois dans l’index.

7

Fait référence à un nom de colonne qualifié.

8

Fait référence à une colonne définie avec un FIELDPROC.

9

Fait référence à la fonction LOWER ou UPPER sans nom de paramètre régional ou l’expression de chaîne d’entrée est FOR BIT DATA.

10

Fait référence à la fonction TRANSLATE sans table de traduction de sortie.

11

Le schéma de codage du résultat d’une colonne ou d’une expression clé est différent du schéma de codage CCSID de la table.

12

La fonction intégrée SUBSTR est autorisée à référencer la partie en ligne d’une colonne LOB dans le contexte spécifié. De plus, les arguments START et LENGTH de la fonction SUBSTR doivent être des constantes.

13

Fait référence à l’une des fonctions intégrées suivantes :

  • VERIFY_GROUP_FOR_USER
  • VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER
  • VERIFY_ROLE_FOR_USER.

14

Contient une expression qui requiert l’utilisation d’une valeur de fuseau horaire implicite. Par exemple, l’expression clé peut inclure un transtypage explicite d’une valeur TIMESTAMP WITHOUT TIME ZONE en une valeur TIMESTAMP WITH TIME ZONE.

15

Référence une variable globale.

25

Une spécification pour un index sur une table EBCDIC comprend une colonne Db2 11 Unicode et une colonne Db2 12 Unicode.

116

Lors d’un appel de la fonction intégrée JSON_VAL dans une key-expression pour un index, le troisième argument de la fonction doit se terminer par « :na », pour indiquer que le premier argument ne contient pas de tableau JSON.

117

Dans un appel de la fonction intégrée JSON_VAL dans une key-expression pour un index, si le premier argument de la fonction est une colonne, cette colonne doit être contenue dans une table dans un espace table partition par croissance.

118

S’il y a un appel de la fonction intégrée JSON_VAL dans une key-expression pour un index, l’instruction CREATE INDEX ne doit pas référencer une colonne LOB autre que la colonne LOB qui est l’argument de la fonction JSON_VAL. Une telle instruction CREATE INDEX ne peut faire référence qu’à une seule colonne LOB.

119

Si une key-expression pour un index contient un appel de la fonction JSON_VAL, l’appel doit être l’expression la plus externe pour key-expression.

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

Réponse du programmeur :
Corrigez l’erreur dans l’expression clé et relancez l’instruction.

SQLSTATE :
429BX

CODE RETOUR -355

A LOB COLUMN IS TOO LARGE TO BE LOGGED

Explication :
L’un des événements suivants s’est produit :

  • une instruction CREATE TABLE pour une table auxiliaire stocke une colonne BLOB, CLOB ou DBCLOB dont la longueur dépasse 1 gigaoctet mais dont l’espace table LOB associé a été défini avec l’attribut LOG YES
  • une instruction ALTER TABLESPACE d’un espace table LOB spécifie la clause LOG YES mais la table auxiliaire dans l’espace table LOB stocke une colonne BLOB ou CLOB dont la longueur dépasse 1 gigaoctet ou une colonne DBCLOB dont la longueur dépasse 500 mégaoctets de caractères

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

Réponse du programmeur :
Modifiez l’attribut de l’espace table LOB en LOG NO ou supprimez la table de base et recréez-la avec des colonnes d’une longueur acceptable pour la journalisation.

SQLSTATE :
42993

CODE RETOUR -354

A ROWSET FETCH STATEMENT MAY HAVE RETURNED ONE OR MORE ROWS OF DATA. HOWEVER, ONE OR MORE NON-TERMINATING ERROR CONDITIONS WERE ENCOUNTERED. USE THE GET DIAGNOSTICS STATEMENT FOR MORE INFORMATION REGARDING THE CONDITIONS THAT WERE ENCOUNTERED

Explication :
Une instruction FETCH d’ensemble de lignes a rencontré une ou plusieurs conditions d’erreur sans fin. Un ou plusieurs avertissements peuvent également avoir été rencontrés. Utilisez l’instruction GET DIAGNOSTICS pour obtenir des informations sur les conditions qui se sont produites et pour déterminer si des données ont été renvoyées. Il est possible qu’une ou plusieurs lignes de données aient été renvoyées. Dans les cas où les informations de ligne renvoyées pour la ligne qui a rencontré la condition sont incomplètes, l’utilisation des données de la ligne qui a rencontré la condition, comme l’affichage ou l’impression des données, n’est pas recommandée.

Action du système :
Db2 a traité l’instruction avec succès, mais avec au moins une erreur sans fin. De plus, la récupération de certaines lignes peut avoir rencontré des avertissements.

Réponse du programmeur :
Analysez les conditions pour déterminer si des actions de suivi sont nécessaires. L’instruction GET DIAGNOSTICS peut être utilisée pour déterminer les actions supplémentaires qui pourraient être nécessaires.

Attention : Il est possible qu’une condition de fin de données ait été détectée. SQLERRD3 et GET DIAGNOSTICS peuvent être utilisés pour déterminer si toutes les lignes demandées ont été récupérées ou si un ensemble de lignes partiel a été renvoyé.

SQLSTATE :
22537

CODE RETOUR -353

FETCH IS NOT ALLOWED, BECAUSE CURSOR cursor-name HAS AN UNKNOWN POSITION

Explication :
La position du curseur pour cursor-name est inconnue. L’extraction de plusieurs lignes précédente pour le curseur cursor-name a entraîné une erreur au milieu du traitement de plusieurs lignes extraites de Db2. Une ou plusieurs des lignes demandées n’ont pas pu être renvoyées au programme suite à l’erreur, laissant la position du curseur inconnue.

L’erreur a peut-être été détectée chez le demandeur. Par exemple, une ligne avec une valeur nulle a été renvoyée à une application, mais aucune variable d’indicateur n’a été fournie. Une instruction FETCH ultérieure entraînerait SQLCODE -353. Si un indicateur avait été fourni, un SQLCODE positif aurait été renvoyé et toutes les lignes extraites de Db2 auraient pu être renvoyées au programme d’application.

Action du système :
L’instruction ne peut pas être traitée. La position du curseur n’est pas modifiée.

Réponse du programmeur :
Fermez et rouvrez le curseur pour réinitialiser la position du curseur. Pour les curseurs déroulants, vous pouvez modifier l’instruction FETCH pour spécifier l’une des autres orientations d’extraction. Par exemple, vous pouvez modifier l’instruction FETCH en spécifiant l’une des orientations d’extraction suivantes :

  • BEFORE ou AFTER
  • orientations de récupération en ligne : FIRST, LAST ou ABSOLUTE pour établir un curseur de ligne valide et récupérer une ligne de données
  • orientations d’extraction positionnées sur l’ensemble de lignes : FIRST ROWSET, LAST ROWSET ou ROWSET STARTING AT ABSOLUTE pour établir une position de curseur d’ensemble de lignes valide et extraire plusieurs lignes de données

Vous pouvez également modifier l’application pour corriger l’erreur qui s’est initialement produite. Par exemple, si l’erreur a été émise parce qu’un indicateur n’a pas été fourni, modifiez l’application pour fournir un indicateur.

SQLSTATE :
24513

CODE RETOUR -352

AN UNSUPPORTED SQLTYPE WAS ENCOUNTERED IN POSITION position-number OF THE INPUT-LIST

Explication :
L’entrée SQLDA d’une instruction OPEN, EXECUTE, FETCH ou CALL contient un SQLTYPE non pris en charge pour un paramètre.

position-number
La position du premier élément dans la SQLDA avec un type de données non pris en charge.
Pour un type de tableau, cette valeur est le numéro de position du premier élément dans la SQLDA avec un type de données non pris en charge pour les éléments du tableau.

Le demandeur d’application ou le serveur d’applications ne prend pas en charge ce type de données. Cette erreur ne peut se produire que dans un environnement client/serveur.

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

Réponse du programmeur :
Modifiez le SQLDA pour exclure le type de données non pris en charge.

SQLSTATE :
56084

CODE RETOUR -351

AN UNSUPPORTED SQLTYPE WAS ENCOUNTERED IN POSITION position-number OF THE SELECT-LIST

Explication :

position-number
La position du premier élément dans la SQLDA avec un type de données non pris en charge.

Cette erreur peut se produire lorsqu’un demandeur d’application ou un serveur d’applications ne prend pas en charge ce type.

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

Réponse du programmeur :
Modifiez l’instruction pour exclure le type de données non pris en charge. Pour une instruction select, supprimez les noms de toutes les colonnes de la liste de sélection avec les types de données non pris en charge.

SQLSTATE :
56084

CODE RETOUR -350

column-name WAS IMPLICITLY OR EXPLICITLY REFERENCED IN A CONTEXT IN WHICH IT CANNOT BE USED

Explication :
L’instruction SQL ne peut pas être traitée car elle fait référence à une colonne dans un contexte non valide.

column-name
Le nom de la colonne.

Les raisons possibles de cette erreur incluent :

Colonnes DECFLOAT
Une colonne DECFLOAT ne peut pas être :

  • Spécifié en tant que colonne d’une clé étrangère dans une clausreferential-constraint.
  • Spécifié en tant que colonne d’une clé parente dans une clause REFERENCES.
  • Spécifié en tant que colonne d’une clé de partitionnement pour le partitionnement par plage.
  • Défini dans une table qui a un EDITPROC.
  • Le type de données de résultat d’une expression clé dans un index basé sur une expression ne doit pas être DECFLOAT ou un type distinct basé sur le type de données DECFLOAT. Un résultat intermédiaire d’une expression clé pour un index peut être le type de données DECFLOAT ou un type distinct basé sur le type de données DECFLOAT.
  • Spécifié en tant que colonne dans une instruction CREATE TABLE ORGANIZE BY HASH ou ALTER TABLE ADD ORGANIZE BY HASH.

Colonnes LOB
Une colonne LOB ne peut pas être :

  • Défini dans une table temporaire (table temporaire globale créée ou table temporaire globale déclarée).
  • Défini dans une table d’accélérateur uniquement.
  • Défini dans une table qui a une procédure d’édition qui est définie avec la sensibilité d’attribut de ligne.
  • Spécifié en tant que colonne de la clé primaire dans une clause PRIMARY KEY.
  • Spécifié en tant que colonne d’une UNIQUE KEY.
  • Spécifié en tant que colonne d’une clé parente dans une clause REFERENCES.
  • Spécifié en tant que colonne d’une clé d’index. De plus, le type de données de résultat, y compris le résultat intermédiaire, d’une expression clé pour un index ne peut pas être un type de données LOB ou un type distinct basé sur un type de données LOB. Pour un index d’expression clé, une colonne LOB en ligne est autorisée comme source de l’expression de fonction SUBSTR et le type de données LOB est autorisé comme résultat intermédiaire de l’expression.
  • Spécifié en tant que colonne d’une clé de partitionnement pour le partitionnement par plage.
  • Référencé par la définition d’un masque de colonne ou d’une autorisation de ligne.
  • Défini comme un masque de colonne.
  • Référencé dans une spécification de période ou une clause de période.
  • Spécifié en tant que colonne dans une instruction CREATE TABLE ORGANIZE BY HASH ou ALTER TABLE ADD ORGANIZE BY HASH.

Colonnes cachées
Une colonne masquée ne peut pas être spécifiée dans une expression clé pour un index.

Colonnes du tableau de résultats

  • Un type de données ROWID, LOB ou XML ne peut pas être le type de données d’une colonne dans la table de résultats d’une clause as-result-table d’une instruction CREATE TABLE ou DECLARE GLOBAL TEMPORARY TABLE.
  • Une colonne d’étiquette de sécurité nom-colonne existe dans la table de résultats de la clause as-result-table ; cependant, ce n’est pas la seule colonne d’étiquette de sécurité dans cette table de résultats. Une table ne peut être définie qu’avec une seule colonne d’étiquette de sécurité.

Colonnes d’étiquettes de sécurité
Une colonne d’étiquette de sécurité ne peut pas être :

  • Spécifié en tant que colonne d’une clé étrangère dans une clause referential-constraint.
  • Spécifié dans une clause REFERENCES.
  • Spécifié dans une expression clé pour un index.

Timestamp avec colonnes de fuseau horaire
Un timestamp avec une colonne de fuseau horaire ne peut pas être spécifié comme colonne d’une clé de partitionnement pour le partitionnement par plage.

Une colonne Unicode Db2 11 dans une table EBCDIC
Une colonne Unicode Db2 11 dans une table EBCDIC ne peut pas être spécifiée dans les éléments suivants :

  • Une instruction ALTER TABLE dans une clause ADD COLUMN si la table est déjà définie avec une EDITPROC.
  • Dans une clause UNIQUE, PRIMARY KEY, REFERENCES, FOREIGN KEY ou ORGANIZE BY HASH.

Cette erreur peut également être émise pour les éléments suivants :

  • Une clause EDITPROC ne peut pas être spécifiée si la table contient une colonne Unicode Db2 11 dans une table EBCDIC.
  • Aucune valeur ne doit être spécifiée après le mot clé DEFAULT pour une colonne Unicode Db2 11 dans une table EBCDIC.
  • NOT PADDED ne doit pas être spécifié pour un index pour une table EBCDIC si la table contient une colonne Db2 11 Unicode.
  • Une clause UNIQUE ou PRIMARY KEY ne doit pas être spécifiée pour une colonne Unicode Db2 11 dans une table EBCDIC.

Colonnes VARBINARY
Une colonne VARBINARY ne peut pas être spécifiée en tant que colonne d’une clé d’index lorsque DESC est également spécifié.

Colonnes XML
Une colonne XML ne peut pas être :

  • Spécifié en tant que colonne de la clé primaire dans une clause PRIMARY KEY.
  • Spécifié en tant que colonne d’une UNIQUE KEY.
  • Spécifié en tant que colonne d’une clé étrangère dans une clause referential-constraint.
  • Spécifié en tant que colonne d’une clé parente dans une clause REFERENCES.
  • Spécifié en tant que colonne d’une clé de partitionnement pour le partitionnement par plage.
  • Défini dans une table temporaire (table temporaire globale créée ou table temporaire globale déclarée).
  • Défini dans une table qui a une procédure d’édition qui est définie avec la sensibilité d’attribut de ligne.
  • Spécifié en tant que colonne d’une clé d’index. De plus, le type de données de résultat, y compris le résultat intermédiaire, d’une expression clé pour un index ne peut pas être un type de données XML. Pour un index XML, seules les colonnes XML peuvent être spécifiées et le type de résultat de la clé d’index peut être DECFLOAT.
  • Spécifié avec la clause SET DEFAULT ou DROP DEFAULT.
  • Référencé par la définition d’un masque de colonne ou d’une autorisation de ligne.
  • Défini comme un masque de colonne.
  • Spécifié en tant que colonne dans une instruction CREATE TABLE ORGANIZE BY HASH ou ALTER TABLE ADD ORGANIZE BY HASH.
  • Spécifié dans une instruction ALTER TABLE dans une clause DROP COLUMN.

Colonnes DOCID
Une colonne DOCID ne peut pas être spécifiée dans les éléments suivants :

  • Une instruction ALTER TABLE dans une clause ALTER COLUMN.
  • Une instruction ALTER TABLE dans une clause DROP COLUMN.

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

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

SQLSTATE :
42962