Bonjour à tous,

J'ai un souci avec les formats de fichier.

J'ai en base les nls param. suivants :

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       FALSE
Dans le client j'ai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
AMERICAN_AMERICA.AL32UTF8
Auparavant nous faisions fonctionner l'appli sous windows :
- 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 :
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');
et est lu ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
	UTL_FILE.GET_LINE(fic, tampon, 256);
Y a-t-il un moyen (mode d'ouverture) de préciser à l'ouverture (fopen) que le fichier est au format utf8 ?

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.