Oracle
 sql >> Base de données >  >> RDS >> Oracle

Le champ du fichier de données dépasse la longueur maximale - erreur

Le message d'erreur est dû au fait que les données lues à partir du fichier de données sont plus grandes que le tampon de caractères par défaut de sqlldr de 255 qui est utilisé si aucun CHAR et aucune taille ne sont spécifiés. Notez que ceci est différent de la taille de la colonne à laquelle le champ correspond. Par exemple, si j'ai une colonne de table de VARCHAR2(4000), mais que je ne donne pas explicitement de taille dans le fichier de contrôle

cola  not null,

et que les données du fichier de données dépassent 255 mais sont inférieures à 4000, vous obtiendrez l'erreur.

Cependant, si le fichier de contrôle indique la taille du tampon comme ceci :

cola char(4000) not null,

tout ira bien comme s'il créait un tampon plus grand (ici, il correspond à la taille de la colonne). Alors, prenez l'habitude de toujours inclure les tailles de colonne. Épargnez-vous quelques tracas et créez une fonction pour générer un fichier de contrôle par défaut pour vous... attendez, j'ai posté le mien pour vous, essayez-le :https://stackoverflow.com/a/37947714/2543416