Comment résoudre le problème « ERROR: null value in column violates not-null constraint » (« ERREUR : la valeur null dans la colonne viole la contrainte non nulle. ») pour mon chargement complet AWS DMS et ma tâche CDC ?

Date de la dernière mise à jour : 02/10/2019

J'ai une tâche AWS Database Migration Service (AWS DMS) qui est à la fois un chargement complet et une capture des données modifiées (CDC). J'ai reçu une erreur indiquant : « ERROR: null value in column violates not-null constraint » (« ERREUR : la valeur null dans la colonne viole la contrainte non nulle. »). Comment résoudre ce problème ?

Résolution

Si vous avez des colonnes LOB (objet volumineux) dans votre tâche de migration, vous voyez une entrée de journal similaire à ce qui suit :

Messages
E: Command failed to load data with exit error code 1, Command output: ERROR: null value in column ’xyz’ violates not-null constraint (E : la commande n'a pas pu charger les données avec le code d'erreur de sortie 1, sortie de commande : ERREUR : la valeur null dans la colonne « xyz » enfreint la contrainte not-null.)

Lorsqu'AWS DMS migre des colonnes LOB, toutes les données, à l'exception de la colonne LOB, sont migrées vers votre table cible, et AWS DMS insère un enregistrement NULL dans la colonne LOB. Ensuite, AWS DMS met à jour les lignes de la table cible avec les données de la colonne LOB.

Si la cible n'est pas créée par AWS DMS, vérifiez le langage de description des données cibles (DDL) pour voir si un attribut NOT NULL est spécifié. S'il existe un attribut NOT NULL, modifiez la table afin de supprimer la contrainte NOT NULL sur les types de données de colonne LOB. Reprenez ensuite votre tâche AWS DMS.

Consultez la table suivante pour connaître le comportement des tâches AWS DMS pour les modes LOB et les phases de tâche :

Mode LOB Chargement complet Capture des modifications de données
Mode LOB complet La contrainte NOT NULL n'est pas autorisée. La contrainte NOT NULL n'est pas autorisée.
Mode LOB limité La contrainte NULL est autorisée. La contrainte NOT NULL n'est pas autorisée.

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?