Bonjour à tous,
J'ai un souci avec les formats de fichier.
J'ai en base les nls param. suivants :
Dans le client j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., 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 FALSEAuparavant nous faisions fonctionner l'appli sous windows :
Code : Sélectionner tout - Visualiser dans une fenêtre à part AMERICAN_AMERICA.AL32UTF8
- procédure stockée qui lit la 1ère ligne du fichier
- sqlloader qui charge le fichier.
Le fichier est au format utf8 (c-a-d que quand on l'ouvre ou le sauvegarde sous notepad il est au format utf8) .
Ca fonctionne !!!!
Nous avons placé ce fichier sur un répertoire Unix et à présent ça ne fonctionne plus :
- la procédure stockée n'arrive plus à lire correctement le fichier (il n'y a pas de plantage mais les traitements de chaînes de car. ne sont pas corrects) , le fichier est ouvert par :
et est lu ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 fic UTL_FILE.FILE_TYPE; codRet varchar2(2) := 'OK'; begin fic := UTL_FILE.FOPEN('INDIR', pNomFichier, 'r');
Y a-t-il un moyen (mode d'ouverture) de préciser à l'ouverture (fopen) que le fichier est au format utf8 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part UTL_FILE.GET_LINE(fic, tampon, 256);
Sinon voyez-vous un moyen pour que les traitements s'effectuent correctement ?
(le sqlloader fonctionne correctement uniquement avec des fichiers au format utf8).
Merci d'avance.
Cordialement.
Partager