Pour charger des données (à partir d'un fichier CSV) dans une base de données Oracle, j'utilise SQL * Loader. Dans la table qui reçoit ces données, une colonne varchar2(500)
est appelée COMMENTS
. Pour certaines raisons, je veux ignorer cette information du fichier CSV. Ainsi, j'ai écrit ce fichier de contrôle:Comment vraiment sauter le traitement d'une colonne?
Options (BindSize=10000000,Readsize=10000000,Rows=5000,Errors=100)
Load Data
Infile 'XXX.txt'
Append into table T_XXX
Fields Terminated By ';'
TRAILING NULLCOLS
(
...
COMMENTS FILLER,
...
)
Ce code semble fonctionner correctement, que le champ COMMENTS
dans la base de données est toujours à null
.
Cependant, si dans mon fichier CSV j'ai un dossier où le champ COMMENTS
correspondant dépasse la limite de 500 caractères, je reçois une erreur de SQL * Loader:
Record 2: Rejected - Error on table T_XXX, column COMMENTS.
Field in data file exceeds maximum length
est-il un moyen de vraiment exclure le traitement de mes champs COMMENTS
?
Merci pour votre aide. J'ai essayé avec la fonction substr, mais j'ai le même résultat. J'ai aussi beaucoup simplifié mon fichier de contrôle et de données (ce processus ne traite que PK et COMMENTAIRES), mais j'ai quand même l'erreur :( J'utilise la version loader 10.2.0.3.0 sql ... – romaintaz
@Romaintaz: vous peut avoir un commentaire qui dépasse les caractères de 4 Ko. J'ai mis à jour ma réponse –
@Vincent: Mon test ne contient qu'un COMMENTAIRE de 514 caractères ... Je suis donc loin d'atteindre la limite de 4 Ko. Je reçois toujours l'erreur, même avec "comments filler char (500)". – romaintaz