Bonjour,

je suis en train d'écrire un script Shell Unix. Dans ce script, j'ai besoin d'exécuter une requête SQL et d'insérer le résultat dans un fichier.

Pour ce faire, j'utilise le script suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
sqlplus $USER_ORA/$MDP_ORA@$DB_ORA @ictmedrej_query.sql
Fichier ictmedrej_query.sql :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
set heading off;
set feed off;
set long 30000;
SET trimspool ON;
set linesize 60000;
set pagesize 999;
spool resultat.txt;
SELECT XDRREJ FROM ICTMEDREJ WHERE FLG=1;
spool off;
 
exit;
Le résultat retourné est un seul enregistrement de type CLOB.

Voici le résultat retourné :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
InternalMU.fournisseur.Fournisseur[0].elementUsage.ElementUsage[0].quantite;CONS
TRUCTED;
InternalMU.fournisseur.Fournisseur[0].elementUsage.ElementUsage[0].quantite.Quan
tite[0];CONSTRUCTED;
InternalMU.fournisseur.Fournisseur[0].elementUsage.ElementUsage[0].quantite.Quan
tite[0].nature;STRING;DU
InternalMU.fournisseur.Fournisseur[0].elementUsage.ElementUsage[0].quantite.Quan
tite[0].unite;STRING;S
InternalMU.fournisseur.Fournisseur[0].elementUsage.ElementUsage[0].quantite.Quan
tite[0].valeur;STRING;87
et voici que je souhaite réellement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
InternalMU.fournisseur.Fournisseur[0].elementUsage.ElementUsage[0].quantite;CONSTRUCTED;
InternalMU.fournisseur.Fournisseur[0].elementUsage.ElementUsage[0].quantite.Quantite[0];CONSTRUCTED;
InternalMU.fournisseur.Fournisseur[0].elementUsage.ElementUsage[0].quantite.Quantite[0].nature;STRING;DU
InternalMU.fournisseur.Fournisseur[0].elementUsage.ElementUsage[0].quantite.Quantite[0].unite;STRING;S
InternalMU.fournisseur.Fournisseur[0].elementUsage.ElementUsage[0].quantite.Quantite[0].valeur;STRING;87

J'ai beau essayé plein de paramètres différents (linesize, pagesize, ...), rien y fait, toutes les lignes de mon enregistrements sont coupées après 80 caractères et continuent la ligne suivante.

Existe-t-il une solution permettant d'éviter ce problème ?

Merci d'avance

Dany