Viya BASE Data Connector failed – Cross Environment Data Access (CEDA) translation failed. Some character data was lost during transcoding while loading the table
ERROR: BASE Data Connector, Cross Environment Data Access (CEDA) translation failed. Some character data was lost during transcoding while loading the table. Either the data contains characters that are not representable in the new encoding or truncation occurred during transcoding. The charMultiplier= import option may prevent the error.
Ce message signifie généralement qu'il n'y a pas assez d'espace dans une ou plusieurs colonnes de caractères pour convertir les données en UTF-8.
Ce problème peut se produire lorsque les caractères du codage d'origine sont convertis en un codage nécessitant plus d'octets pour représenter ces mêmes caractères. Par exemple, lorsque des caractères codés en tant que LATIN1, où chaque caractère est représenté avec 1 octet, sont transcodés en UTF-8, où certains caractères requièrent 1, 2 ou même 3 octets, une troncature peut se produire si la colonne de caractères est pas assez large.
Pour résoudre ce problème , vous pouvez utiliser le moteur CVP (character variable padding) avec l'instruction LIBNAME pour lire le jeu de données. Le moteur CVP ajoute un remplissage aux colonnes de caractères. Par défaut, les longueurs de variable de caractère sont multipliées par 1,5.
Dans SASStudio et en exécutant une proc contents sur cette table vous obtenez le message suivant :
1 2 3 4 5 |
libname zhold cvp "/opt/data/cedaIn"; libname zhnew "/opt/data/cedaOut"; proc copy in=zhold out=zhnew noclone; select staffwin; run |
1 |
proc contents data=zhnew.staffwin; run; |