OLD OR NEW CORRELATION NAMES ARE NOT ALLOWED IN A TRIGGER DEFINED WITH THE FOR EACH STATEMENT CLAUSE. OLD_TABLE OR NEW_TABLE NAMES ARE NOT ALLOWED IN A TRIGGER WITH THE BEFORE CLAUSE.
Explication : Le déclencheur (trigger), tel qu’il est défini, inclut une clause REFERENCING avec l’une des combinaisons non valides suivantes :
OLD ou NEW noms de corrélation spécifiés (ou les deux) et la clause FOR EACH STATEMENT.
Noms de corrélation NEW_TABLE ou OLD_TABLE spécifiés (ou les deux) et la clause BEFORE.
Action du système : La déclaration ne peut pas être traitée. Le déclencheur n’a pas été défini.
Réponse du programmeur : Supprimez les noms de corrélation non valides ou modifiez la granularité du déclencheur sur FOR EACH ROW.
Explication : Le nombre maximal de colonnes autorisées pour une table dépendante est de 749. Le code est utilisé pour signaler que l’instruction n’est pas valide en raison de l’une des raisons suivantes :
Une instruction CREATE TABLE crée une table dépendante avec 750 colonnes.
Une instruction ALTER TABLE modifie une table dépendante avec 749 colonnes pour ajouter une colonne, ou modifie une table avec 750 colonnes pour devenir une table dépendante.
Action du système : La déclaration ne peut pas être traitée.
Réponse du programmeur : Corrigez l’instruction SQL pour vous conformer à la limite de colonnes d’une table dépendante.
THE STATEMENT IS REJECTED BY DATA DEFINITION CONTROL SUPPORT. REASON reason-code
Explication : Le code est émis par le support de contrôle de définition de données pour signaler que la déclaration est rejetée pour la raison indiquée par ‘reason-code‘ après consultation de la table d’enregistrement d’application et de la table d’enregistrement d’objet.
L’explication du reason-code donné :
0001
La prise en charge du contrôle de la définition des données s’exécute en mode de contrôle par nom d’application. L’instruction est rejetée car l’application actuelle n’est pas enregistrée dans la table d’enregistrement des applications avec DEFAULTAPPL activé.
0002
La prise en charge du contrôle de la définition des données s’exécute en mode Contrôle par nom d’application avec exceptions. L’instruction est rejetée car l’objet n’est pas enregistré dans la table d’enregistrement d’objet et l’application actuelle n’est pas enregistrée dans la table d’enregistrement d’application avec DEFAULTAPPL activé.
0003
La prise en charge du contrôle de la définition des données s’exécute en mode Contrôle par nom d’application avec exceptions. L’instruction est rejetée car l’objet est enregistré dans la table d’enregistrement d’objets mais l’application actuelle ne correspond pas.
0004
La prise en charge du contrôle des définitions de données s’exécute en mode de contrôle par nom d’objet avec exceptions. L’instruction est rejetée car l’objet est enregistré dans la table d’enregistrement d’objets mais l’application actuelle ne correspond pas.
0005
La prise en charge du contrôle des définitions de données s’exécute en mode de contrôle par nom d’objet. L’instruction est rejetée car l’objet est enregistré dans la table d’enregistrement d’objets mais l’application actuelle ne correspond pas.
0006
La prise en charge du contrôle des définitions de données s’exécute en mode de contrôle par nom d’objet. L’instruction est rejetée car l’objet n’est pas enregistré dans la table d’enregistrement des objets.
Action du système : La déclaration ne peut pas être traitée.
Réponse du programmeur : Vérifiez si la prise en charge du contrôle de la définition des données s’exécute dans le bon mode. Vérifiez une ou les deux tables d’enregistrement pour déterminer si les entrées des tables d’enregistrement sont correctes. Si ce n’est pas le cas, mettez à jour les tables d’enregistrement.
THE REQUIRED REGISTRATION TABLE table-name DOES NOT EXIST
Explication : La prise en charge du contrôle de définition de données suppose l’existence de la table d’enregistrement d’application et de la table d’enregistrement d’objet. Mais une ou les deux tables ne sont pas définies.
Action du système : La déclaration ne peut pas être traitée.
Réponse du programmeur : Déterminez si les tables d’enregistrement requises existent. Si ce n’est pas le cas, créez les tables requises.
THE REQUIRED UNIQUE INDEX index-name FOR DDL REGISTRATION TABLE table-name DOES NOT EXIST
Explication : Un index unique doit être défini pour chaque table d’enregistrement. Le code est émis lorsque l’index requis n’existe pas ou que l’index défini n’est pas un index unique.
Action du système : La déclaration ne peut pas être traitée.
Réponse du programmeur : Déterminez si l’index unique requis existe. Sinon, créez l’index requis. Si l’index existe, mais qu’il n’est pas unique, supprimez-le et recréez-le en tant qu’index unique.
COLUMN DEFINED WITH A FIELD PROCEDURE CAN NOT COMPARE WITH ANOTHER COLUMN WITH DIFFERENT FIELD PROCEDURE
Explication : Les colonnes spécifiées ne sont pas compatibles. Différentes procédures de champ sont spécifiées ou une seule procédure de champ est spécifiée.
Action du système : La déclaration ne peut pas être traitée.
Réponse du programmeur : Corrigez l’instruction SQL.
THE SPECIFICATION FOR COLUMN, DISTINCT TYPE, FUNCTION, OR PROCEDURE data-item CONTAINS INCOMPATIBLE CLAUSES
Explication : La spécification de l’élément de données d’une instruction CREATE ou ALTER contient une erreur.
data-item La source du problème, qui varie selon l’énoncé.
L’instructions CREATE DISTINCT TYPE : Nom du type en cours de définition.
L’instructions CREATE FUNCTION ou ALTER FUNCTION : La zone de l’instruction qui a provoqué l’erreur, telle que “PARAMETER 3”, “RETURNS” ou “CAST FROM”.
Instructions CREATE TABLE ou ALTER TABLE : Nom de la colonne à l’origine de l’erreur. L’erreur peut être une spécification non valide de FOR BIT DATA, FOR SBCS DATA, FOR MIXED DATA ou FIELDPROC pour la définition de colonne. Les restrictions supplémentaires suivantes s’appliquent aux instructions CREATE TABLE, ALTER TABLE ou aux deux : – Dans une instruction ALTER TABLE, la modification de génération ne peut pas être spécifiée pour une colonne qui n’est pas définie en tant que colonne d’identité. – Les colonnes pour une période BUSINESS_TIME doivent être définies avec un type de données DATE ou TIMESTAMP(6) WITHOUT TIME ZONE. – Le type de données d’une colonne définie comme ROW BEGIN, ROW END ou TRANSACTION START ID doit être TIMESTAMP(12) WITHOUT TIME ZONE.
Causes générales FIELDPROC ne peut être spécifié que pour les colonnes qui sont une chaîne de caractères intégrée ou un type de données de chaîne graphique qui n’est pas un LOB. FIELDPROC ne peut pas être spécifié pour une colonne Unicode dans une table EBCDIC.
Action du système : La déclaration ne peut pas être traitée.
Réponse du programmeur : Corrigez l’instruction SQL en supprimant la spécification incompatible.