J'utilise une tâche AWS Database Migration Service (AWS DMS) qui est à la fois une tâche de chargement complet et de capture de données modifiées (CDC). J'ai reçu le message d'erreur suivant : « ERREUR : la valeur nulle dans la colonne enfreint la contrainte interdisant les valeurs nulles. »
Résolution
Si votre tâche de migration comporte des colonnes d'objets volumineux (LOB), vous obtiendrez une entrée de journal de ce type :
« 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 nulle dans la colonne « xyz » enfreint la contrainte interdisant les valeurs nulles »
Quand AWS DMS migre des colonnes LOB, toutes les données sont migrées vers votre table cible, à l'exception de la colonne LOB. AWS DMS insère également un enregistrement NULL dans la colonne LOB. AWS DMS met ensuite à jour les lignes de la table cible avec les données de la colonne LOB.
Si AWS DMS n'a pas créé la cible, vérifiez le langage de description des données cibles pour voir si un attribut NOT NULL est spécifié. S'il existe un attribut NOT NULL, mettez à jour la table pour supprimer la contrainte NOT NULL des types de données de la 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 de données modifié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 |
Informations connexes
Migration d'objets binaires volumineux (LOB)