Comment puis-je tronquer les données à intégrer dans un champ à l'aide de SQL*Loader? (ORA-12899)
À l'aide de Oracle SQL*Loader, je suis en train de charger une colonne qui a une chaîne de longueur variable (lob) dans une autre base de données dans un varchar2(4000) de la colonne dans Oracle. Nous avons des chaînes beaucoup plus de 4000 caractères, mais tout le monde a convenu que ces chaînes peuvent et doivent être tronqué dans la migration (nous avons étudié les données qui va au-delà de 4000 caractères, ce n'est pas significative). Pour ce faire, j'ai précisé que la colonne de cette façon dans le fichier de contrôle:
COMMENTS CHAR(65535) "SUBSTR(:COMMENTS, 1, 4000)",
Toutefois, SQL*Loader toujours rejette toute ligne où cet enregistrement est plus de 4000 caractères dans le fichier de données:
Enregistrement 6484: Rejet - Erreur sur le tableau LOG_COMMENT, la colonne des COMMENTAIRES.
ORA-12899: valeur trop grande pour la colonne COMMENTAIRES (réel: 11477, maximum: 4000)Enregistrement 31994: Rejet - Erreur sur le tableau LOG_COMMENT, la colonne des COMMENTAIRES.
ORA-12899: valeur trop grande pour la colonne COMMENTAIRES (réel: 16212, maximum: 4000)Enregistrement 44063: Rejet - Erreur sur le tableau LOG_COMMENT, la colonne des COMMENTAIRES.
ORA-12899: valeur trop grande pour la colonne COMMENTAIRES (réel: 62433, maximum: 4000)
J'ai essayé de prendre un beaucoup plus petit sous-chaîne et toujours la même erreur. Comment puis-je modifier mon fichier de contrôle de tronquer la chaîne de données de plus de 4000 caractères dans un varchar2(4000) de la colonne?
OriginalL'auteur John | 2010-06-30
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que votre ENCODAGE de données Oracle et d'ENCODAGE ne sont pas en conflit.
Dans ce cas, utilisez CHARACTERSET option lors du chargement.
OriginalL'auteur pinichi
par tous les comptes
est la syntaxe correcte.
à l'aide de sqlldr 11.2.0.1 il fonctionne correctement pour moi jusqu'à ce que le point où l'enregistrement de l'entrée de la colonne > 4000 où j'obtiens un
si je passe pour un directpath charger puis-je obtenir le smae d'erreur que vous.
à la fin j'ai divisé en 2 étages charge.. j'ai maintenant une mise en scène de la table avec une colonne de type CLOB dont j'ai la charge avec
qui est ensuite inséré à l'eth de la table principale avec un
espère que c'est utile
OriginalL'auteur ShoeLace