SQL Loader: erreur ORA-12899
Bonjour,
J'obtiens une erreur d'import sur le chargement d'un fichier sur une base Oracle 10g XE alors que cela fonctionne sur une base 11.g
Pour information, voici le paramétrage de ma base 10gXE
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET AL32UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 10.2.0.1.0 |
et le paramétrage de ma base 11g
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET WE8MSWIN1252
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 11.1.0.7.0 |
La seule différence se trouve au niveau du CHARACTERSET.
Mon fichier de contrôle est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10
| LOAD DATA
INFILE 'C:\ARTLIB.txt'
TRUNCATE
INTO TABLE ARTLIB
FIELDS TERMINATED BY "|"
(ARTID CHAR(7),
ARTLIB1 CHAR(255),
ARTAILLE1 CHAR(255),
ARTAILLE2 CHAR(255),
ARTLIB2 CHAR(255)) |
Le chargement en Oracle 11g fonctionne sans erreur et les accents sont importés correctement.
Le chargement en Oracle 10g XE me renvoie l'erreur suivante:
Code:
1 2 3 4 5 6 7 8 9 10
| Nom de colonne Position Long. Séparat. Encadrem. Type de données
------------------------------ ---------- ----- ---- ---- ---------------------
ARTIDCIO FIRST 7 | CHARACTER
ARTLIB1 NEXT 255 | CHARACTER
ARTAILLE1 NEXT 255 | CHARACTER
ARTAILLE2 NEXT 255 | CHARACTER
ARTLIB2 NEXT 255 | CHARACTER
Enregistrement 24036 : Rejeté - Erreur sur table ARTLIB, colonne ARTLIB1.
ORA-12899: valeur trop grande pour la colonne ARTLIB1 (réelle : 258, maximum : 255) |
Pourtant la ligne en erreur sur l'import sur la colonne ARTLIB1 contient 253 caractères. J'ai vu que les accents passaient sur 2 bytes d'où le dépassement des 255 caractères.
J'ai donc essayé d'ajouter à la 2ème ligne du fichier de contrôle CHARACTERSET WE8MSWIN2152 pour prendre en compte le même jeu de caractère que la base 11g, mais rien n'y fait, j'ai toujours la même erreur.
Quelqu'un aurait une solution?
D'avance merci.