Archives de catégorie : SQLCODE

CODE RETOUR -343

THE COLUMN NAMES ARE REQUIRED FOR THE RECURSIVE COMMON TABLE EXPRESSION name

Explication :
Le nom de l’expression name de table commune récursive doit inclure la spécification des noms de colonnes après l’identifiant de l’expression de table commune.

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

Réponse du programmeur :
Ajoutez des noms de colonne à la suite de l’identifiant des expressions de table communes.

SQLSTATE :
42908

CODE RETOUR -342

THE COMMON TABLE EXPRESSION name MUST NOT USE SELECT DISTINCT AND MUST USE UNION ALL BECAUSE IT IS RECURSIVE

Explication :
Il y a deux explications possibles:

  • Une sélection complète dans le nom de l’expression de table commune ne peut pas commencer par SELECT DISTINCT car l’expression de table commune est récursive.
  • Un fullselect dans le nom de l’expression de table commune a spécifié UNION au lieu de UNION ALL comme requis pour les expressions de table communes récursives.

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

Réponse du programmeur :
Supprimez le mot clé DISTINCT de l’expression de table commune, ajoutez le mot clé ALL après UNION ou supprimez la référence récursive dans l’expression de table commune.

SQLSTATE :
42925

CODE RETOUR -341

A CYCLIC REFERENCE EXISTS BETWEEN THE COMMON TABLE EXPRESSIONS name1 AND name2

Explication :
L’expression de table commune name1 fait référence à name2 dans une clause FROM dans son fullselect et name2 fait référence à name1 dans une clause FROM dans ses fullselects. De telles formes de références cycliques ne sont pas autorisées.

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

Réponse du programmeur :
Supprimez la référence cyclique de l’une des expressions de table communes.

SQLSTATE :
42835

CODE RETOUR -340

THE COMMON TABLE EXPRESSION name HAS THE SAME IDENTIFIER AS ANOTHER OCCURRENCE OF A COMMON TABLE EXPRESSION DEFINITION WITHIN THE SAME STATEMENT

Explication :
Le nom de l’expression de table commune name  est utilisé dans la définition de plusieurs expressions de table communes dans l’instruction. Le nom utilisé pour décrire une expression de table commune doit être unique dans la même instruction.

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

Réponse du programmeur :
Corrigez l’erreur en modifiant le nom de l’une des expressions de table communes.

SQLSTATE :
42726

CODE RETOUR -338

AN ON CLAUSE IS INVALID

Explication :
Une instruction contient une clause ON non valide. Les conditions pouvant provoquer cette erreur incluent, sans s’y limiter, les violations des exigences suivantes :

  • Pour une jointure complète, chaque expression du prédicat doit référencer uniquement des colonnes dans ses propres tables d’opérandes.
  • Pour une jointure complète, une colonne Unicode Db2 11 dans une table EBCDIC ne doit pas être référencée dans la condition de jointure.
  • Seules les fonctions VALUE et COALESCE sont autorisées dans la clause ON pour les jointures externes complètes et les jointures complètes.
  • Les jointures externes complètes et les jointures complètes n’autorisent que l’opérateur =.
  • La clause ON ne peut pas contenir de sous-requête.
  • La clause ON ne peut pas contenir de prédicat XMLEXISTS.
  • La search-condition de la clause ON d’une instruction MERGE ne peut pas contenir de fonctions scalaires non déterministes.
  • Une sous-requête n’est pas autorisée dans la search-condition de la clause ON d’une instruction MERGE.

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

Réponse du programmeur :
Corrigez la syntaxe et réexécutez l’instruction.

SQLSTATE :
42972

CODE RETOUR -336

THE SCALE OF THE DECIMAL NUMBER MUST BE ZERO

Explication :
Le nombre décimal est utilisé dans un contexte où l’échelle doit être zéro. Cela peut se produire lorsqu’un nombre décimal est spécifié dans une instruction CREATE ou ALTER SEQUENCE pour START WITH, INCREMENT BY, MINVALUE, MAXVALUE ou RESTART WITH.

Réponse du programmeur :
Modifiez le nombre décimal afin qu’il n’y ait pas de chiffres différents de zéro à droite de la virgule décimale.

SQLSTATE :
428FA

CODE RETOUR -333

THE SUBTYPE OF A STRING VARIABLE IS NOT THE SAME AS THE SUBTYPE KNOWN AT BIND TIME AND THE DIFFERENCE CANNOT BE RESOLVED BY CHARACTER CONVERSION

Explication :
Le CCSID dans le SQLDA d’exécution est incohérent avec le sous-type de temps de liaison de la variable hôte ou du marqueur de paramètre. Soit la description de la durée d’exécution est BIT et la description de la durée de liaison n’était pas BIT, soit la description de la durée d’exécution n’est pas BIT et la description de la durée de liaison était BIT.

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

Réponse du programmeur :
Modifiez le CCSID dans le SQLDA afin que le sous-type de la variable hôte soit cohérent avec le sous-type de temps de liaison de la variable hôte ou du marqueur de paramètre. Si les données d’entrée erronées sont un marqueur de paramètre, vous pouvez utiliser l’instruction DESCRIBE INPUT SQL pour déterminer le SQLTYPE, le SQLLEN et le CCSID attendus.

SQLSTATE :
56010

CODE RETOUR -332

CHARACTER CONVERSION BETWEEN CCSID from-ccsid TO to-ccsid REQUESTED BY reason-code IS NOT SUPPORTED

Explication :
L’opération a nécessité une conversion entre deux CCSID différents. Aucun support de conversion n’a été trouvé.

from-ccsid
Identifie le jeu de caractères codés de la chaîne à convertir.
to-ccsid
Identifie le jeu de caractères codés vers lequel il doit être converti.
reason-code
Décrit les codes de raison renvoyés par Db2. Les codes de motif renvoyés par Db2 commencent par « DSN » et identifient le contexte dans lequel la conversion a été demandée. Les valeurs autres que celles commençant par « DSN » sont renvoyées par d’autres plates-formes Db2 et sont décrites dans la documentation de la plate-forme.

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

Réponse du programmeur :
Si la demande de conversion est correcte, consultez les informations sur la façon d’ajouter la prise en charge de la conversion.

ETAT SQL :
57017

CODE RETOUR -331

CHARACTER CONVERSION CANNOT BE PERFORMED BECAUSE A STRING, POSITION position-number, CANNOT BE CONVERTED FROM source-ccsid TO target-ccsid, REASON reason-code

Explication :
L’opération a nécessité la conversion de source-ccsid en target-ccsid et une erreur de conversion s’est produite. Le type d’erreur est indiqué par le reason-code :

8

pour l’exception de longueur (par exemple, l’extension requise pour les données PC MIXED dépasse la longueur maximale de la chaîne).

12

pour un code-point invalide (par exemple, utilisation de l’option ERRORBYTE de SYSSTRINGS).

16

pour exception de formulaire (par exemple, données MIXED non valides).

20

pour erreur de procédure de conversion (par exemple, un exit a défini le champ de contrôle de longueur de la chaîne sur une valeur non valide). Vous pouvez trouver le nom de la procédure dans la ligne SYSIBM.SYSSTRINGS avec INCCSID=source-ccsid et OUTCCSID=target-ccsid dans la colonne TRANSPROC.

Le position-number, s’il est fourni (différent de zéro), est l’ordre de la variable de sortie dans la SQLDA.

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

Réponse du programmeur :
Effectuez l’une des actions suivantes en fonction du reason-code :

8

Étendez la longueur maximale de la colonne de résultat pour permettre l’expansion qui se produit lorsque la chaîne est convertie.

12

Modifiez la table de conversion pour accepter le code-point ou modifiez les données pour éliminer le code-point.

16

Si la chaîne est décrite comme des données MIXED, modifiez sa description ou modifiez la chaîne pour qu’elle se conforme aux règles des données MIXED bien formées.

20

Corrigez la procédure de conversion.

Une alternative à ces actions correctives consiste à fournir une variable indicatrice afin qu’une valeur nulle et un avertissement puissent être renvoyés plutôt qu’une erreur.

ETATSQL :
22021

CODE RETOUR -330

A STRING CANNOT BE USED BECAUSE IT CANNOT BE PROCESSED. REASON reason-code, CHARACTER code-point, HOST VARIABLE position-number

Explication :

Une erreur s’est produite lors du traitement d’une chaîne ou lors de la conversion d’une chaîne. Le type d’erreur est indiqué par le reason-code :

8

Exception de longueur (par exemple, l’extension requise pour les données PC MIXED dépasse la longueur maximale de la chaîne).

12

Point de code non valide (par exemple, utilisation de l’option ERRORBYTE de SYSSTRINGS).

16

Exception de formulaire (par exemple, données MIXTES non valides).

20

Erreur de procédure de conversion (par exemple, un exit a défini le champ de contrôle de longueur de la chaîne sur une valeur non valide).

24

Caractère SBCS trouvé dans la chaîne contenue dans une variable hôte wchar_t ou sqldbchar.

Si le reason-code est 12, code-point est le point de code invalide. Sinon, code-point est soit vide, soit un code de raison supplémentaire renvoyé par une sortie.

Si la chaîne est la valeur d’une variable hôte d’entrée, le position-number est l’ordre de la variable dans la SQLDA. Si la chaîne n’est pas la valeur d’une variable hôte, le position-number est vide.

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

Réponse du programmeur :

Effectuez l’une des actions suivantes en fonction du code anomalie :

8

Étendez la longueur maximale de la variable hôte pour permettre l’expansion qui se produit lorsque la chaîne est convertie.

12

Modifiez la table de conversion pour accepter le code-point ou les données pour éliminer le code-point.

16

Si la chaîne est décrite comme des données MIXED, modifiez sa description ou modifiez la chaîne pour qu’elle se conforme aux règles des données mixtes bien formées.

20

Corrigez la procédure de conversion.

24

Supprimez le caractère SBCS de la chaîne graphique.

ETATSQL :
22021