bonjour tout le monde , voila j' ai un problème , déjà rencontré par d'autres personnes sur ce forum , mais aucunes des solutions proposé ne me satisfait , c'est pourquoi que je me permet de reposter le message ici.
voila , je travaille sur oracle 9.2.0.4.0 sous unix
a travers un script shell j'essaye de générer un fichier csv voila le code
normalement je m'attend a un tel résultat
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 `sqlplus -s ${connect} >> $LOG_FILE << EOF SET HEAD OFF SET FEEDBACK OFF SET TAB OFF SET SPACE 0 SET TRIMSPOOL ON SET LINESIZE 10000 SET COLSEP ';' WHENEVER SQLERROR EXIT FAILURE ROLLBACK; WHENEVER OSERROR EXIT FAILURE ROLLBACK; spool ${EXTRACT_FILE} select chmp1,chmp2,chmp3 from matable; spool off EXIT; EOF`
alors que j'obtient ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 val1;val2;val3 val4;val5;val6
sachant que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 val1 ;val2 ;val3 val4 ;val5 ;val6
champs1 est un varchar2(50)
champs2 est un varchar2(20)
champs3 est un varchar2(20)
je sais que je peut fixer la longueur des colonne ou plus simple faire un sed sur le fichier pour éliminer les blanc mais je pense qu'il doit y avoir une solution pour obtenir que la longueur de la colonne (lors de l'affichage) prend celle de la valeur sans ajouter des blanc a chaques fois.
Partager