Tous les articles par Mr COBOL

CODE RETOUR -251

TOKEN name IS NOT VALID

Explication :
Un nom d’emplacement ne peut pas contenir d’extensions alphabétiques. (Les extensions alphabétiques standard aux États-Unis sont #, @, $.)

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

Réponse du programmeur :
Corrigez le nom et rééditez la déclaration.

ETATSQL :
42602

CODE RETOUR -250

THE LOCAL LOCATION NAME IS NOT DEFINED WHEN PROCESSING A THREE-PART OBJECT NAME

Explication :
Un nom d’objet en trois parties (table, vue ou alias) ne peut pas être utilisé tant que le nom de l’emplacement local n’est pas défini.

Action du système :
Installez ou réinstallez la fonction de données distribuées (DDF) Db2 avec un nom d’emplacement enregistré pour Db2 local.

Réponse du programmeur :
Définissez le nom de l’emplacement local, puis réessayez la fonction.

ETATSQL :
42718

CODE RETOUR -249

DEFINITION OF ROWSET ACCESS FOR CURSOR cursor-name IS INCONSISTENT WITH THE FETCH ORIENTATION CLAUSE clause SPECIFIED

Explication :
Une clause spécifiée pour l’instruction FETCH est incompatible avec la définition du curseur cursor-name. Cette erreur peut être émise pour les situations suivantes :

  • Un curseur défini SANS ROWSET POSITIONING ne peut utiliser que BEFORE, AFTER, les mots-clés d’orientation d’extraction positionnés sur la ligne : NEXT, PRIOR, FIRST, LAST, CURRENT, ABSOLUTE ou RELATIVE.
  • Un curseur défini AVEC ROWSET POSITIONING peut utiliser BEFORE, AFTER, des clauses d’orientation d’extraction positionnées sur un ensemble de lignes : NEXT ROWSET, PRIOR ROWSET, FIRST ROWSET, LAST ROWSET, CURRENT ROWSET ou ROWSET STARTING AT, ou des mots-clés d’orientation d’extraction positionnés sur une ligne : NEXT, PRIOR, PREMIER, DERNIER, COURANT, ABSOLU ou RELATIF.

Une clause FOR n ROWS a été spécifiée dans une instruction FETCH, mais le curseur n’est pas défini pour l’accès à l’ensemble de lignes.

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

Réponse du programmeur :
Corrigez l’orientation de l’extraction, supprimez la clause FOR n ROWS ou redéfinissez le curseur.

ETATSQL :
24523

CODE RETOUR -248

A POSITIONED DELETE OR UPDATE STATEMENT FOR CURSOR cursor-name SPECIFIED ROW n OF A ROWSET, BUT THE ROW IS NOT CONTAINED WITHIN THE CURRENT ROWSET

Explication :
La clause FOR ROW n OF ROWSET a été spécifiée sur une instruction DELETE ou UPDATE positionnée, mais la ligne n n’est pas contenue dans la limite de l’ensemble de lignes. Cette situation peut également se produire lorsque la ligne n se trouve dans les limites de l’ensemble de lignes demandé, mais que l’ensemble de lignes actuel contient moins que le nombre de lignes demandé. Dans ce cas, un ensemble de lignes partiel est renvoyé. Un ensemble de lignes partiel peut se produire pour diverses raisons, notamment une condition de fin de données ou une erreur qui n’a pas entraîné la fermeture du curseur.

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

Réponse du programmeur :
Réexécutez le UPDATE ou DELETE positionné avec une valeur qui correspond à une ligne de l’ensemble de lignes actuel. Si la ligne spécifiée est en dehors de l’ensemble de lignes actuel, procédez comme suit :

  • Utilisez la clause FOR n ROWS sur une instruction FETCH CURRENT ROWSET pour spécifier que l’ensemble de lignes contient un plus grand nombre de lignes
  • Relancez l’instruction UPDATE ou DELETE positionnée.

Si ce message est émis parce qu’un ensemble de lignes partiel a été renvoyé,

  • Mettez à jour la logique de l’application pour détecter que la taille réelle de l’ensemble de lignes était inférieure à la taille de l’ensemble de lignes demandée
  • Assurez-vous qu’une instruction UPDATE ou DELETE positionnée ne fait référence qu’aux lignes de l’ensemble de lignes actuel.

ETATSQL :
24521

CODE RETOUR -247

A HOLE WAS DETECTED ON A MULTIPLE ROW FETCH STATEMENT USING CURSOR cursor-name, BUT INDICATOR VARIABLES WERE NOT PROVIDED TO DETECT THE CONDITION

Explication :
Un trou a été détecté sur une instruction FETCH pour plusieurs lignes de données, mais aucune variable indicatrice n’a été fournie pour refléter la situation dans l’application.

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

Réponse du programmeur :
Modifiez l’instruction FETCH pour fournir au moins une variable d’indicateur et soumettez à nouveau l’instruction.

ETATSQL :
24519

CODE RETOUR -246

STATEMENT USING CURSOR cursor-name SPECIFIED NUMBER OF ROWS num-rows WHICH IS NOT VALID WITH dimension

Explication :
Une instruction FETCH, MERGE ou INSERT à plusieurs lignes n’est pas valide dans ce contexte. La déclaration est invalide pour l’une des raisons suivantes :

  • Le nombre de lignes spécifié n’est pas supérieur à 0 ni inférieur ou égal à 32767.
  • Le nombre de lignes spécifié est supérieur à la dimension du tableau de variable hôte.
  • Si l’instruction est une instruction FETCH à plusieurs lignes exécutée dans un environnement distribué ou sur un accélérateur, la taille maximale calculée des données de réponse dépasse la limite Db2. La taille maximale calculée des données de réponse est le produit du nombre de lignes et de la taille maximale des données renvoyées dans une seule ligne de la requête.

cursor-name
Si l’instruction SQL est une instruction FETCH, cette valeur est le nom du curseur qui a été utilisé pour l’instruction FETCH. Si l’instruction SQL n’est pas une instruction FETCH, cette valeur est la chaîne *N. *N indique que le nom du curseur n’est pas applicable.

num-rows
Le nombre de lignes qui ont été spécifiées.

dimension
Si l’instruction n’est pas une instruction FETCH à plusieurs lignes exécutée dans un environnement distribué et qu’il ne s’agit pas d’une instruction FETCH à plusieurs lignes exécutée sur un accélérateur, cette valeur correspond à la dimension du tableau.
Si l’instruction est une instruction FETCH à plusieurs lignes exécutée dans un environnement distribué ou une instruction FETCH à plusieurs lignes exécutée sur un accélérateur, cette valeur est la chaîne *N. *N indique que la dimension n’est pas applicable.

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

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

  • Modifiez l’application pour déclarer ou allouer un tableau de variables hôte suffisamment grand pour contenir le nombre de lignes spécifié.
  • Modifiez le nombre de lignes spécifié entre 1 et 32767 inclus.
  • Si l’instruction est une instruction FETCH à plusieurs lignes exécutée dans un environnement distribué ou sur un accélérateur, réduisez le nombre de lignes spécifié.

ETATSQL :
42873

CODE RETOUR -245

THE INVOCATION OF FUNCTION routine-name IS AMBIGUOUS

Explication :
Db2 n’a pas pu résoudre la fonction indiquée.

routine-name
Le nom de la fonction.

Cette situation peut se produire dans les circonstances suivantes :

  • Un marqueur de paramètre non typé est transmis à une fonction et il existe deux fonctions candidates ou plus à résoudre pendant la résolution de la fonction.
  • Db2 ne peut pas déterminer comment convertir implicitement les arguments entre les types de données chaîne et numérique.
  • Db2 ne parvient pas à résoudre un appel de fonction à l’aide du processus promouvable ou du processus castable de résolution de fonction.

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

Réponse du programmeur :
Corrigez le problème et rééditez la déclaration. Vous devrez peut-être modifier l’instruction SQL, la définition d’une fonction ou le chemin SQL de l’utilisateur.

ETATSQL :
428F5

CODE RETOUR -244

SENSITIVITY sensitivity SPECIFIED ON THE FETCH IS NOT VALID FOR CURSOR cursor-name

Explication :
L’option de sensibilité spécifiée sur FETCH entre en conflit avec l’option de sensibilité en vigueur pour le curseur cursor-name. Si un curseur est déclaré INSENSITIVE, l’instruction FETCH ne peut spécifier que INSENSITIVE ou rien. Si un curseur est déclaré SENSITIVE, l’instruction FETCH peut spécifier INSENSITIVE, SENSITIVE ou rien.

Le mot clé INSENSITIVE n’est pas autorisé avec les instructions FETCH si le curseur associé est soit :

  • Déclaré comme SENSITIVE DYNAMIC SCROLL, ou
  • Le curseur est déclaré ASENSITIVE et Db2 a sélectionné la sensibilité maximale autorisée de SENSITIVE DYNAMIC SCROLL pour l’instruction SELECT associée.

Dans le cas d’un curseur non défilant, l’option de sensibilité ne peut pas être spécifiée.

sensitivity
Sensibilité spécifiée pour l’instruction FETCH.
cursor-name
Nom du curseur utilisé pour l’instruction FETCH.

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

Réponse du programmeur :
Modifiez ou supprimez l’option de sensibilité spécifiée sur le FETCH.

ETATSQL :
428F4

CODE RETOUR -243

SENSITIVE CURSOR cursor-name CANNOT BE DEFINED FOR THE SPECIFIED SELECT STATEMENT

Explication :
Une clause n’était pas valide pour l’une des raisons suivantes :

  • Le curseur, cursor-name, est défini comme SENSITIVE, mais le contenu de l’instruction SELECT rend le curseur en lecture seule. Dans la plupart des cas, l’instruction SELECT nécessite que Db2 crée une table temporaire ou un fichier de travail avec la table de résultats du curseur, et Db2 ne peut garantir que les modifications apportées en dehors du curseur seront visibles. Dans ce cas, le curseur doit être défini INSENSITIVE ou ASENSITIVE.
  • Le curseur, cursor-name, est défini comme SENSITIVE DYNAMIC et une clause OFFSET ou FETCH a été spécifiée pour la sous-sélection ou la sélection complète la plus externe.

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

Réponse du programmeur :
Si le curseur est défini comme SENSITIVE, mais que le contenu de l’instruction SELECT rend le curseur en lecture seule, modifiez le contenu de la requête pour obtenir une table de résultats qui n’est pas en lecture seule ou modifiez le type de curseur à INSENSIBLE ou ASENSIBLE.

Si le curseur est défini comme SENSITIVE DYNAMIC et qu’une clause OFFSET ou FETCH a été spécifiée pour la sous-sélection ou la sélection complète la plus à l’extérieur, modifiez la sensibilité du curseur ou modifiez la sous-sélection ou la sélection complète la plus extérieure pour supprimer la clause OFFSET ou la clause FETCH.

ETATSQL :
36001

CODE RETOUR -242

THE OBJECT NAMED object-name OF TYPE object-type WAS SPECIFIED MORE THAN ONCE IN THE LIST OF OBJECTS, OR THE NAME IS THE SAME AS AN EXISTING OBJECT

Explication :
Dans une liste de noms d’objets de type object-type, l’objet nommé object-name a été spécifié plusieurs fois ou est le même qu’un nom existant de ce type.

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

Réponse de l’utilisateur :
Corrigez l’erreur en supprimant toutes les occurrences en double de l’objet de la liste.

ETATSQL :
42713