A PREVIOUS VALUE EXPRESSION CANNOT BE USED BEFORE THE NEXT VALUE EXPRESSION GENERATES A VALUE IN THE CURRENT APPLICATION PROCESS FOR SEQUENCE sequence-name
Explication : Une expression PREVIOUS VALUE a spécifié la séquence nom-séquence, mais aucune valeur n’a encore été générée pour cette séquence. Une expression NEXT VALUE doit être émise dans ce processus d’application pour générer une valeur pour cette séquence avant qu’une expression PREVIOUS VALUE pour la séquence puisse être émise.
Cette erreur peut également se produire après la suppression d’une séquence et l’annulation de l’instruction DROP.
Action du système : La déclaration ne peut pas être traitée.
Réponse du programmeur : Emettez au moins une expression NEXT VALUE pour une séquence avant d’émettre une expression PREVIOUS VALUE pour la même séquence dans une connexion.
INVALID SPECIFICATION OF AN IDENTITY COLUMN OR SEQUENCE OBJECT object-typeobject-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 :
1
Le 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.
2
La 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.
3
MINVALUE doit être inférieur ou égal à MAXVALUE.
4
Une valeur non valide a été spécifiée pour CACHE. La valeur doit être un INTEGER avec une valeur minimale de 2.
5
Une procédure d’édition définie avec une sensibilité d’attribut de ligne a été spécifiée pour la colonne d’identité.
6
Une 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.
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.
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.
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.
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.
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.
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.
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 INDEX
L’objet que l’instruction SQL a tenté de créer est un index de type 1.
INDEX
L’objet que l’instruction SQL a tenté de créer est un index.
TABLE
L’objet que l’instruction SQL a tenté de créer ou de modifier est une table.
TABLESPACE
L’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 ASCII
La 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 VALIDE
PIECESIZE 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 NO
Un 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 COLUMN
L’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.
6
La 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.