column-name WAS IMPLICITLY OR EXPLICITLY REFERENCED IN A CONTEXT IN WHICH IT CANNOT BE USED
Explication :
L’instruction SQL ne peut pas être traitée car elle fait référence à une colonne dans un contexte non valide.
column-name
Le nom de la colonne.
Les raisons possibles de cette erreur incluent :
Colonnes DECFLOAT
Une colonne DECFLOAT ne peut pas être :
- Spécifié en tant que colonne d’une clé étrangère dans une clausreferential-constraint.
- Spécifié en tant que colonne d’une clé parente dans une clause REFERENCES.
- Spécifié en tant que colonne d’une clé de partitionnement pour le partitionnement par plage.
- Défini dans une table qui a un EDITPROC.
- Le type de données de résultat d’une expression clé dans un index basé sur une expression ne doit pas être DECFLOAT ou un type distinct basé sur le type de données DECFLOAT. Un résultat intermédiaire d’une expression clé pour un index peut être le type de données DECFLOAT ou un type distinct basé sur le type de données DECFLOAT.
- Spécifié en tant que colonne dans une instruction CREATE TABLE ORGANIZE BY HASH ou ALTER TABLE ADD ORGANIZE BY HASH.
Colonnes LOB
Une colonne LOB ne peut pas être :
- Défini dans une table temporaire (table temporaire globale créée ou table temporaire globale déclarée).
- Défini dans une table d’accélérateur uniquement.
- Défini dans une table qui a une procédure d’édition qui est définie avec la sensibilité d’attribut de ligne.
- Spécifié en tant que colonne de la clé primaire dans une clause PRIMARY KEY.
- Spécifié en tant que colonne d’une UNIQUE KEY.
- Spécifié en tant que colonne d’une clé parente dans une clause REFERENCES.
- Spécifié en tant que colonne d’une clé d’index. De plus, le type de données de résultat, y compris le résultat intermédiaire, d’une expression clé pour un index ne peut pas être un type de données LOB ou un type distinct basé sur un type de données LOB. Pour un index d’expression clé, une colonne LOB en ligne est autorisée comme source de l’expression de fonction SUBSTR et le type de données LOB est autorisé comme résultat intermédiaire de l’expression.
- Spécifié en tant que colonne d’une clé de partitionnement pour le partitionnement par plage.
- Référencé par la définition d’un masque de colonne ou d’une autorisation de ligne.
- Défini comme un masque de colonne.
- Référencé dans une spécification de période ou une clause de période.
- Spécifié en tant que colonne dans une instruction CREATE TABLE ORGANIZE BY HASH ou ALTER TABLE ADD ORGANIZE BY HASH.
Colonnes cachées
Une colonne masquée ne peut pas être spécifiée dans une expression clé pour un index.
Colonnes du tableau de résultats
- Un type de données ROWID, LOB ou XML ne peut pas être le type de données d’une colonne dans la table de résultats d’une clause as-result-table d’une instruction CREATE TABLE ou DECLARE GLOBAL TEMPORARY TABLE.
- Une colonne d’étiquette de sécurité nom-colonne existe dans la table de résultats de la clause as-result-table ; cependant, ce n’est pas la seule colonne d’étiquette de sécurité dans cette table de résultats. Une table ne peut être définie qu’avec une seule colonne d’étiquette de sécurité.
Colonnes d’étiquettes de sécurité
Une colonne d’étiquette de sécurité ne peut pas être :
- Spécifié en tant que colonne d’une clé étrangère dans une clause referential-constraint.
- Spécifié dans une clause REFERENCES.
- Spécifié dans une expression clé pour un index.
Timestamp avec colonnes de fuseau horaire
Un timestamp avec une colonne de fuseau horaire ne peut pas être spécifié comme colonne d’une clé de partitionnement pour le partitionnement par plage.
Une colonne Unicode Db2 11 dans une table EBCDIC
Une colonne Unicode Db2 11 dans une table EBCDIC ne peut pas être spécifiée dans les éléments suivants :
- Une instruction ALTER TABLE dans une clause ADD COLUMN si la table est déjà définie avec une EDITPROC.
- Dans une clause UNIQUE, PRIMARY KEY, REFERENCES, FOREIGN KEY ou ORGANIZE BY HASH.
Cette erreur peut également être émise pour les éléments suivants :
- Une clause EDITPROC ne peut pas être spécifiée si la table contient une colonne Unicode Db2 11 dans une table EBCDIC.
- Aucune valeur ne doit être spécifiée après le mot clé DEFAULT pour une colonne Unicode Db2 11 dans une table EBCDIC.
- NOT PADDED ne doit pas être spécifié pour un index pour une table EBCDIC si la table contient une colonne Db2 11 Unicode.
- Une clause UNIQUE ou PRIMARY KEY ne doit pas être spécifiée pour une colonne Unicode Db2 11 dans une table EBCDIC.
Colonnes VARBINARY
Une colonne VARBINARY ne peut pas être spécifiée en tant que colonne d’une clé d’index lorsque DESC est également spécifié.
Colonnes XML
Une colonne XML ne peut pas être :
- Spécifié en tant que colonne de la clé primaire dans une clause PRIMARY KEY.
- Spécifié en tant que colonne d’une UNIQUE KEY.
- Spécifié en tant que colonne d’une clé étrangère dans une clause referential-constraint.
- Spécifié en tant que colonne d’une clé parente dans une clause REFERENCES.
- Spécifié en tant que colonne d’une clé de partitionnement pour le partitionnement par plage.
- Défini dans une table temporaire (table temporaire globale créée ou table temporaire globale déclarée).
- Défini dans une table qui a une procédure d’édition qui est définie avec la sensibilité d’attribut de ligne.
- Spécifié en tant que colonne d’une clé d’index. De plus, le type de données de résultat, y compris le résultat intermédiaire, d’une expression clé pour un index ne peut pas être un type de données XML. Pour un index XML, seules les colonnes XML peuvent être spécifiées et le type de résultat de la clé d’index peut être DECFLOAT.
- Spécifié avec la clause SET DEFAULT ou DROP DEFAULT.
- Référencé par la définition d’un masque de colonne ou d’une autorisation de ligne.
- Défini comme un masque de colonne.
- Spécifié en tant que colonne dans une instruction CREATE TABLE ORGANIZE BY HASH ou ALTER TABLE ADD ORGANIZE BY HASH.
- Spécifié dans une instruction ALTER TABLE dans une clause DROP COLUMN.
Colonnes DOCID
Une colonne DOCID ne peut pas être spécifiée dans les éléments suivants :
- Une instruction ALTER TABLE dans une clause ALTER COLUMN.
- Une instruction ALTER TABLE dans une clause DROP COLUMN.
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 :
42962