Tous les articles par Mr COBOL

CODE RETOUR -846

INVALID SPECIFICATION OF AN IDENTITY COLUMN OR SEQUENCE OBJECT object-type object-name. REASON CODE = reason-code

Explication :
Pour une colonne ou une séquence d’identité, la spécification d’un attribut dans une instruction CREATE ou ALTER peut être invalide.

Ce message est également émis si nom-objet identifie une colonne DB2_GENERATED_DOCID_FOR_XML.

object-type
Le type d’objet.

object-name
Le nom de l’objet.

reason-code
La raison du message ou du code SQL, indiquée par l’une des valeurs suivantes :

1Le type de données sous-jacent de la colonne d’identité ou de l’objet de séquence n’est pas pris en charge. Les colonnes d’identité et les objets de séquence prennent en charge les types de données suivants : SMALLINT, INTEGER, BIGINT et DECIMAL (ou NUMERIC) avec une échelle de zéro.
2La valeur de START WITH, INCREMENT BY, MINVALUE, MAXVALUE ou RESTART WITH est en dehors de la plage pour le type de données de la colonne d’identité ou de l’objet de séquence. Si la séquence modifiée est DSNSEQ_IMPLICITDB, la valeur de MAXVALUE est en dehors de la plage comprise entre 1 et 60000 inclus.
3MINVALUE doit être inférieur ou égal à MAXVALUE.
4Une valeur non valide a été spécifiée pour CACHE. La valeur doit être un INTEGER avec une valeur minimale de 2.
5Une procédure d’édition définie avec une sensibilité d’attribut de ligne a été spécifiée pour la colonne d’identité.
6Une colonne d’identité a été spécifiée pour une table temporaire globale déjà définie par une instruction CREATE GLOBAL TEMPORARY TABLE. Cette erreur peut se produire pour une instruction CREATE GLOBAL TEMPORARY TABLE ou une instruction ALTER TABLE pour une table temporaire globale lors d’une tentative d’ajout d’une colonne d’identité à une table temporaire globale existante déjà définie par une instruction CREATE GLOBAL TEMPORARY TABLE.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Corrigez la syntaxe et soumettez à nouveau la déclaration.

SQLSTATE :
42815

CODE RETOUR -867

INVALID SPECIFICATION OF A ROWID COLUMN

Explication :
Pour une instruction ALTER TABLE ou CREATE TABLE, la spécification d’une colonne ROWID peut être invalide pour l’une des raisons suivantes :
– Une colonne ROWID ne peut pas être ajoutée à une table temporaire.
– La clause referential-constraint ne peut pas spécifier une colonne ROWID en tant que colonne d’une clé étrangère.
– Une colonne ROWID ne peut pas être une colonne d’une clé primaire.
– Une colonne ROWID ne peut pas être une colonne dans une table avec une procédure d’édition définie avec une sensibilité d’attribut de ligne.

Si plusieurs échanges sont tentés consécutivement, il doit y avoir un COMMIT entre eux. Ce COMMIT est déjà requis avant que DML puisse être fait. Si un COMMIT n’est pas effectué entre les échanges, un code SQL -909 sera émis.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Corrigez la syntaxe et soumettez à nouveau la déclaration.

SQLSTATE :
428C7

CODE RETOUR -870

THE NUMBER OF HOST VARIABLES IN THE STATEMENT IS NOT EQUAL TO THE NUMBER OF DESCRIPTORS

Explication :
Le nombre de variables hôtes dans l’instruction SQL ne correspond pas au nombre de descripteurs de variables hôtes.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Corrigez le programme d’application. La cause la plus probable de ce problème est un deux-points manquant avant une variable hôte.

Détermination du problème :
Si l’instruction SQL est liée localement, les descripteurs sont créés par le précompilateur Db2. Pour une instruction SQL distante, les descripteurs sont construits par DDF et sont passés dans le tableau SQLSTTVRB.

SQLSTATE :
58026

CODE RETOUR -872

A VALID CCSID HAS NOT YET BEEN SPECIFIED FOR THIS SUBSYSTEM

Explication :
Un CCSID valide n’a pas été spécifié dans le paramètre de sous-système ASCII CCSID, EBCDIC CCSID ou UNICODE CCSID sur le panneau d’installation DSNTIPF.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Contactez votre administrateur système pour faire définir le CCSID nécessaire pour votre système.

SQLSTATE :
51032

CODE RETOUR -873

THE STATEMENT REFERENCED DATA ENCODED WITH DIFFERENT ENCODING SCHEMES OR CCSIDS IN AN INVALID CONTEXT

Explication :
L’instruction SQL référence les données de plusieurs schémas de codage ou CCSID dans un contexte où la référence n’est pas autorisée. Cette erreur peut se produire pour l’une des raisons suivantes :

  • La définition d’une nouvelle table est spécifiée pour être “comme” une vue existante qui fait référence à des données provenant de plusieurs schémas de codage.
  • Les tables parent et enfant référencées dans la définition d’une contrainte référentielle contenant une ou plusieurs colonnes non numériques sont encodées avec des schémas d’encodage différents.
  • La définition d’une table de requête matérialisée utilise un schéma de codage différent de celui de l’espace table conteneur.
  • L’instruction SELECT référence des données codées dans plusieurs schémas de codage et contient également une instruction INSERT, DELETE, UPDATE ou MERGE qui référence des données codées avec un schéma de codage unique.
  • Un déclencheur INSTEAD OF est créé sur une vue qui fait référence à plusieurs encodages ou CCSID.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Corrigez l’instruction SQL.

SQLSTATE :
53090

CODE RETOUR -874

THE ENCODING SCHEME SPECIFIED FOR THE object-type MUST BE THE SAME AS THE CONTAINING TABLE SPACE OR OTHER PARAMETERS

Explication :
Une clause CCSID a été incorrectement spécifiée dans l’une des situations suivantes :

  • Dans une instruction CREATE TABLE ou ALTER TABLE :
    • CCSID ASCII a été spécifié et l’espace table contenant est EBCDIC ou UNICODE.
    • Le CCSID EBCDIC a été spécifié et l’espace table contenant est ASCII ou UNICODE.
    • CCSID UNICODE a été spécifié et l’espace table contenant est ASCII ou EBCDIC.
  • Dans un fullselect qui crée une table, les éléments suivants n’étaient pas les mêmes :
    • Le schéma d’encodage de la table de résultat du fullselect
    • Le schéma de codage dans la clause CCSID (si spécifié)
    • Schéma de codage de l’espace table cible
  • Dans une instruction CREATE TYPE pour un tableau, la clause CCSID a été spécifiée pour le type de données des éléments du tableau et pour le type de données de l’index. Les spécifications CCSID pour les éléments du tableau et pour l’index n’étaient pas les mêmes.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Corrigez l’instruction SQL de l’une des manières suivantes :

  • Pour une instruction CREATE TABLE ou ALTER TABLE, faites en sorte que la valeur CCSID de l’instruction CREATE TABLE ou ALTER TABLE soit identique au CCSID de l’espace table contenant.
  • Pour un fullselect qui crée une table, faites en sorte que tous les éléments suivants soient identiques :
    • Le schéma d’encodage de la table de résultat du fullselect
    • Le schéma de codage dans la clause CCSID (si spécifié)
    • Schéma de codage de l’espace table cible
  • Pour une instruction CREATE TYPE pour un tableau, faites en sorte que la spécification CCSID pour les éléments du tableau et pour l’index soit la même.

SQLSTATE :
53091

CODE RETOUR -875

operand CANNOT BE USED WITH THE ASCII DATA REFERENCED

Explication :
Les données ASCII ont été référencées dans l’une des situations suivantes :
– Un prédicat LIKE fait référence à une colonne de données mixtes dans une table ASCII. Le prédicat LIKE n’est pas pris en charge pour les données ASCII mixtes.
– Une fonction VARGRAPHIC a été spécifiée pour une colonne dans une table ASCII. La fonction VARGRAPHIC n’est pas prise en charge pour les données ASCII.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Corrigez l’instruction SQL.

SQLSTATE :
42988

CODE RETOUR -876

object-type CANNOT BE CREATED OR ALTERED, REASON reason-code

Explication :
L’objet dans l’instruction SQL ne peut pas être créé ou modifié.

object-type
Le type d’objet qui n’a pas pu être créé ou modifié :

TYPE 1 INDEXL’objet que l’instruction SQL a tenté de créer est un index de type 1.
INDEXL’objet que l’instruction SQL a tenté de créer est un index.
TABLEL’objet que l’instruction SQL a tenté de créer ou de modifier est une table.
TABLESPACEL’objet que l’instruction SQL a tenté de modifier est un espace table.



reason-code
Une valeur qui indique la raison de l’échec.

TABLE DÉFINI COMME ASCIILa table sous-jacente est définie au format ASCII. Seuls les index de type 2 sont pris en charge pour les tables ASCII.
PIECESIZE N’EST PAS VALIDEPIECESIZE n’est valide que pour les index non partitionnés.
LE NOM DE LA COLONNE EN EBCDIC DÉPASSE 18 OCTETS, OU LA CONVERSION D’UNICODE EN EBCDIC A ÉCHOUÉLa table en cours de création ou de modification comporte une procédure d’édition définie avec une sensibilité d’attribut de ligne, une procédure de champ ou une procédure de validation. Dans ces cas, le nom de colonne dans EBCDIC ne peut pas dépasser 18 octets EBCDIC de longueur, ou la conversion d’un nom de colonne d’UNICODE en EBCDIC a échoué.
BASE TABLESPACE EST LOG YES, LOB TABLESPACE EST LOG NOUn index spatial ne peut pas être créé car les espaces table suivants ont les attributs indiqués :
L’espace table qui contient la table de base possède l’attribut LOG YES (ou LOGGED).
L’espace table LOB qui stocke la colonne LOB possède l’attribut LOG NO (ou NOT LOGGED).
CONTIENT UNE SPATIAL COLUMNL’attribut LOG YES d’un espace table LOB ne peut pas être modifié en LOG NO si un index dépend de la colonne LOB.
L’attribut LOG NO d’un espace table ne peut pas être modifié en LOG YES s’il contient une table avec un index qui dépend d’une colonne LOB de la table.
6La valeur de l’un des paramètres de sous-système suivants a interdit la définition d’une table partitionnée contrôlée par index :

PREVENT_NEW_IXCTRL_PART
La valeur du paramètre de sous-système PREVENT INDEX PART CREATE interdisait la création d’une table partitionnée contrôlée par index avec une instruction CREATE TABLE.

PREVENT_ALTERTB_LIMITKEY
La valeur du paramètre de sous-système PREVENT ALTER LIMITKEY interdisait la modification de la clé de limite d’une table partitionnée contrôlée par index avec une instruction ALTER TABLE.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Corrigez l’instruction SQL pour l’objet en cours de création ou de modification.

SQLSTATE :
53092

CODE RETOUR -877

CCSID ASCII OR CCSID UNICODE IS NOT ALLOWED FOR THIS DATABASE OR TABLE SPACE

Explication :
La base de données ou l’espace table spécifié doit être au format EBCDIC.

Action du système :
La déclaration ne peut pas être traitée.

Réponse du programmeur :
Supprimez la clause CCSID ASCII ou CCSID UNICODE de l’instruction.

SQLSTATE :
53093

CODE RETOUR -878

THE explain-object USED FOR EXPLAIN MUST BE ENCODED IN UNICODE. IT CANNOT BE IN ASCII OR EBCDIC.

Explication :
Un objet de table EXPLAIN a été encodé dans le mauvais format. Il doit être encodé en Unicode pour être utilisé avec EXPLAIN.

explain-object
Nom de l’objet de table d’explication.

Action du système :
L’instruction n’a pas été exécutée.

Réponse du programmeur :
Migrez les tables EXPLAIN du format de version actuel vers UNICODE pour le schéma actuel.

SQLSTATE :
53094