Bonjour à tous.
J'ai un soucis d'encodage lorsque je veux extraire un fichier en csv. J'arrive à l'extraire en encodage ANSI mais j'ai une contrainte prestataire qui le souhaite en UTF8.
C'est une extraction qui doit être quotidienne, donc automatisé.
Pour faire l'extraction, j'utilise sqlplus avec le script suivant
Les champs CODECLIENT et CODETITRECLIENT sont des number, le champ NOM est un varchar.
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 set echo off; set feed off; set verify off; set heading off; set embedded on; set newpage none; set linesize 100; set pagesize 10000; alter session set NLS_LANG=FRENCH_FRANCE.UTF8 spool 'C:\Export\BaO\fic.csv'; select 'CODECLIENT;CODETITRECLIENT;NOM' from dual; select c.CODECLIENT || ';' || c.CODETITRECLIENT || ';' || c.NOM from clients c where c.datecreation >= (select to_date(INI_VAL, 'DD/MM/YYYY') from DCENTER.DCENTER_BAO_INI where INI_APPLI = 'BAO_DISTRI2CABESTAN' and INI_PARAM = 'DATE_LAST_EXPORT') union select c.CODECLIENT || ';' || c.CODETITRECLIENT || ';' || c.NOM from clients c where c.datemodification >= (select to_date(INI_VAL, 'DD/MM/YYYY') from DCENTER.DCENTER_BAO_INI where INI_APPLI = 'BAO_DISTRI2CABESTAN' and INI_PARAM = 'DATE_LAST_EXPORT') and c.datecreation < (select to_date(INI_VAL, 'DD/MM/YYYY') from DCENTER.DCENTER_BAO_INI where INI_APPLI = 'BAO_DISTRI2CABESTAN' and INI_PARAM = 'DATE_LAST_EXPORT'); spool off; set feed on; set pagesize 25; set echo on;
Si je fait la même extraction sans le champ NOM, je n'ai aucun problème l'encodage est bon, mais dès que je lui met le champ NOM il ne modifie pas l'encodage.
J'ai testé manuellement dans une fenêtre de commande en faisant ceci
là, mon fichier avait le bon encodage, mais si je met les mêmes infos dans un .bat, j'ai toujours mon problème d'encodage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 set NLS_LANG = FRENCH_FRANCE.UTF8 sqlplus storeland/storeland@STOR-ORCL @C:\Export\BaO\export.sql
A noter l'encodage de ma base est celui ci: FRENCH_FRANCE.WE8MSWIN1252
J'ai chercher sur le web, mais j'ai pas trouver de solution à mon problème.
Peut être que je loupe un truc sur mon.bat ou dans mon script.
Merci pour votre aide
Partager