Tous les articles par Mr COBOL

CODE RETOUR -433

VALUE value IS TOO LONG

Explication
La valeur value nécessitait une troncature par une fonction de distribution ou d’ajustement du système (intégrée), qui était appelée pour transformer la valeur d’une manière ou d’une autre. La troncature n’est pas autorisée lorsque cette valeur est utilisée. La valeur transformée est l’une des suivantes :

  • un argument à une fonction définie par l’utilisateur (UDF)
  • une entrée dans la clause SET d’une instruction UPDATE
  • une valeur en cours d’INSERTION dans une table
  • une entrée à une fonction de distribution ou d’ajustement dans un autre contexte.

Si value a le sous-type ‘for bit data’, ou a un type de données BINARY ou VARBINARY, alors value est imprimée sous forme de chaîne hexadécimale entre guillemets suivie d’un X.

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

Réponse du programmeur
Si value est une chaîne littérale dans l’instruction SQL, elle est trop longue pour son utilisation prévue. Si value n’est pas une chaîne littérale, examinez l’instruction SQL pour déterminer où la transformation a lieu. Soit l’entrée de la transformation est trop longue, soit la cible est trop courte. Corrigez le problème et réexécutez l’instruction.

SQLSTATE
22001

CODE RETOUR -431

ROUTINE routine-name (SPECIFIC NAME specific-name) OF TYPE routine-type HAS BEEN INTERRUPTED BY THE USER

Explication
Un utilisateur a émis TERMINATE pendant une session de débogage de la routine SQL routine-name. Le TERMINATE a peut-être été émis car une attente ou une boucle infinie a été rencontrée.

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

Réponse de l’utilisateur
Aucune récupération n’est nécessaire.

SQLSTATE
38504

CODE RETOUR -430

routine-type routine-name (SPECIFIC NAME specific-name) HAS ABNORMALLY TERMINATED

Explication
Une interruption anormale s’est produite alors que la routine  routine-name (procédure ou fonction stockée) était sous contrôle.

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

Réponse du programmeur
La procédure stockée ou la fonction doit être corrigée. Contactez l’auteur de la routine ou votre administrateur de base de données. Tant qu’elle n’est pas corrigée, la routine ne doit pas être utilisée.

SQLSTATE
38503

CODE RETOUR -427

DYNAMIC ROLLBACK NOT VALID AT AN APPLICATION SERVER WHERE UPDATES ARE NOT ALLOWED

Explication
Une application exécutée à l’aide des protocoles DRDA a tenté d’émettre une instruction ROLLBACK dynamique alors qu’elle était connectée à un emplacement où les mises à jour ne sont pas autorisées. Un ROLLBACK dynamique ne peut être émis que lorsque vous êtes connecté à un emplacement auquel les mises à jour sont autorisées.

Action du système
L’instruction ne peut pas être traitée. Aucun ROLLBACK n’est effectué.

Réponse du programmeur
Les protocoles IMS ou CICS® doivent être utilisés pour annuler le travail dans ces environnements.

SQLSTATE
2D529

CODE RETOUR -426

DYNAMIC COMMIT NOT VALID AT AN APPLICATION SERVER WHERE UPDATES ARE NOT ALLOWED

Explication
Une application s’exécutant à l’aide des protocoles DRDA a tenté d’émettre une instruction COMMIT dynamique ou une procédure stockée a tenté d’émettre un COMMIT_ON_RETURN, alors qu’elle était connectée à un emplacement auquel les mises à jour ne sont pas autorisées. Un COMMIT ou COMMIT_ON_RETURN dynamique ne peut être émis que lorsque vous êtes connecté à un emplacement auquel les mises à jour sont autorisées.

Action du système
L’instruction ne peut pas être traitée. Aucun COMMIT n’est effectué.

Réponse du programmeur
Les protocoles IMS ou CICS® doivent être utilisés pour valider le travail dans ces environnements.

SQLSTATE
2D528

CODE RETOUR -423

INVALID VALUE FOR LOCATOR IN POSITION position-#

Explication
La valeur spécifiée dans une variable hôte de localisateur d’ensemble de résultats, une variable hôte de localisateur LOB ou un localisateur de table spécifié à la position position-# dans la liste des variables de localisateur de l’instruction SQL n’identifie pas un localisateur d’ensemble de résultats valide, une variable de localisateur LOB , ou localisateur de table, respectivement.

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

Réponse du programmeur
Pour un localisateur d’ensemble de résultats, il existe deux causes courantes d’erreur :

  • La variable hôte utilisée comme localisateur d’ensemble de résultats n’a jamais reçu de valeur de localisateur d’ensemble de résultats valide. Les valeurs de localisateur d’ensemble de résultats sont renvoyées par les instructions DESCRIBE PROCEDURE et ASSOCIATE LOCATORS. Assurez-vous que la valeur de votre variable hôte est obtenue à partir de l’une de ces instructions.
  • Les valeurs de localisateur de jeu de résultats ne sont valides que tant que le curseur SQL sous-jacent est ouvert. Si une opération de validation ou d’annulation ferme un curseur SQL, le localisateur de jeu de résultats associé au curseur n’est plus valide.

Pour un localisateur LOB, certaines causes courantes d’erreur sont :

  • La variable hôte utilisée comme localisateur LOB n’a jamais reçu de valeur LOB valide.
  • Une opération de validation ou d’annulation ou une instruction SQL FREE LOCATOR a libéré le localisateur.

Pour un localisateur de table, l’erreur se produit généralement lorsque la variable hôte qui a été utilisée comme localisateur de table n’a jamais reçu de valeur de localisateur de table valide.

SQLSTATE
0F001

CODE RETOUR -420

THE VALUE OF A STRING ARGUMENT WAS NOT ACCEPTABLE TO THE function-name FUNCTION

Explication
Un argument de chaîne n’était pas conforme aux exigences de la fonction. Par exemple, une chaîne de caractères passée à la fonction DECIMAL n’était pas conforme aux règles de formation d’un entier ou d’une constante décimale SQL.

Si l’erreur est émise pour un cast implicite ou explicite, le function-name contient le nom du type de données cible du cast. Pour un transtypage implicite où une valeur de chaîne de caractères ou de chaîne graphique est comparée à une valeur numérique, Db2 convertit implicitement la valeur de chaîne en DECFLOAT(34) afin que la fonction function-name ait une valeur DECFLOAT.

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

Réponse du programmeur
Modifiez la valeur de l’argument afin qu’elle soit conforme aux exigences de la fonction.

SQLSTATE
22018

CODE RETOUR -413

OVERFLOW OR UNDERFLOW OCCURRED DURING NUMERIC DATA TYPE CONVERSION

Explication
Lors du traitement de l’instruction SQL, une condition de dépassement ou de souspassement s’est produite lors de la conversion d’un type numérique à un autre. La conversion numérique est effectuée selon les règles standard de SQL.

Action du système
L’instruction ne peut pas être traitée. Aucune donnée n’a été récupérée, mise à jour ou supprimée.

Réponse du programmeur
Examinez la syntaxe de l’instruction SQL pour déterminer la cause de l’erreur. Si le problème dépend des données, il peut être nécessaire d’examiner les données traitées au moment de l’erreur.

SQLSTATE
22003

CODE RETOUR -409

INVALID OPERAND OF A COUNT FUNCTION

Explication
L’opérande de la fonction COUNT ou COUNT_BIG dans l’instruction viole la syntaxe SQL. Une erreur courante est un nom de colonne ou une autre expression sans DISTINCT.

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
42607

CODE RETOUR -400

THE CATALOG HAS THE MAXIMUM NUMBER OF USER DEFINED INDEXES

Explication :
Pas plus de 500 index définis par l’utilisateur peuvent être créés dans la base de données du catalogue.

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

Réponse du programmeur :
Si cet index doit être créé, un autre index défini par l’utilisateur sur le catalogue doit être supprimé. Une fois cet index supprimé, cette instruction peut être exécutée.

SQLSTATE :
54027