SQL5104N ou SQL5105N erreur renvoyée lors de l'interrogation d'une table Datalake
Lors de l'interrogation d'une table Datalake, une erreur SQL5104N ou SQL5105N peut être renvoyée si une valeur nulle est lue pour une colonne définie comme NOT NULL.
Symptômes
Si une valeur NULL est lue pour une colonne définie comme NOT NULL, une erreur sera renvoyée.
Raisons
Plusieurs scénarios peuvent être à l'origine de cette situation, mais la cause la plus probable est lorsqu'une table Datalake contenant des données existantes est modifiée pour ajouter une nouvelle colonne définie comme NOT NULL. Une requête qui lit les données de la table existante n'aura pas de valeur pour la nouvelle colonne et renverra donc une valeur NULL. Ce problème peut également se produire si une table est importée de watsonx.data et qu'elle a été modifiée de la même manière.
SQL5104N The statement failed because the data in HDFS cannot be mapped to
the Hadoop table definition. Hadoop table name: "mcknight.kathy". Column
index: "1". Log entry identifier: "[BSL-1-1e2754f01]". Reason: "NULL in a
non-nullable column". SQLSTATE=530AC
SQL5105N The statement failed because a Big SQL component encountered an
error. Component receiving the error: "BigSQL IO". Component returning the
error: "UNKNOWN". Log entry identifier: "[BSL-1-1d7af4eb8]". Reason:
"Missing required field: c2". SQLSTATE=58040
Résolution du problème
Pour éviter ce problème, ne modifiez pas une table Datalake existante en ajoutant une nouvelle colonne avec une contrainte NOT NULL , surtout si la table contient déjà des données.
Si ce problème se pose, il peut être résolu en modifiant la table pour supprimer la contrainte NOT
NULL de la colonne concernée.