Bonjour à tous,

J'ai cette requête qui est exécuté dans un script python (avec sqlplus)
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
SET TRIMSPOOL ON 
 SET TRIMOUT ON 
 SET HEAD OFF 
 SET HEADING OFF 
 SET HEADSEP OFF 
 SET FEEDBACK OFF 
 SET ECHO OFF 
 SET PAGESIZE 0 
 SET TAB OFF 
 SET LINESIZE 1000 
 SET TERMOUT OFF 
 
 spool """ + fileSrc + """
 SELECT * FROM
 (
         SELECT /* + FIRST_ROWS(n) */ t.*, ROWNUM rnum FROM
         (
                 SELECT a.tbl_0||'|'||a.evt_0||'|'||TO_CHAR(a.dat_0, 'dd-mm-yyyy')||'|'||a.hou_0||'|'||a.id1_0||'|'||a.id2_0||'|'||a1.col_0||'|'||a1.nval_0||'|'||a.seq_0                                                                  
                 FROM XXXXX.audith a
                 INNER JOIN XXXXX.auditl a1 ON a1.seq_0 = a.seq_0
                 WHERE
                         (a.tbl_0 = 'SORDER' OR
                         a.tbl_0 = 'SORDERP' OR
                         a.tbl_0 = 'SORDERQ' OR
                         a.tbl_0 = 'SDELIVERY' OR
                         a.tbl_0 = 'SDELIVERYD' OR
                         a.tbl_0 = 'SINVOICE' OR
                         a.tbl_0 = 'SINVOICEV' OR
                         a.tbl_0 = 'OPPOR' OR
                         a.tbl_0 = 'SALESREP') AND
                         TO_CHAR(a.dat_0, 'dd-mm-yyyy') = TO_CHAR(sysdate, 'dd-mm-yyyy')
                 ORDER BY a.HOU_0 ASC
         ) t
         WHERE ROWNUM <= 100000)
 WHERE rnum >= 11984;
 spool off
 exit
Le résultat est écrit dans un fichier csv. Tout marche sauf que j'ai un problème au niveau du séparateur. Dans ma sous-sous-requête j'utilise volontairement le | comme séparateur. Mais en l'état la requête m'écrit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
SDELIVERY|UPDATE|23-02-2022|140949|LIVHIL22022344| |CFMFLG|2|437211
     23085
Alors que je moi je souhaite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SDELIVERY|UPDATE|23-02-2022|140949|LIVHIL22022344| |CFMFLG|2|437211|23085
J'ai essayé de modifier mettre set colsep '|' mais cela ne change rien. Dans le second select j'ai modifier le séparateur comme dans le 3eme select
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT /* + FIRST_ROWS(n) */ t.*||'|'||ROWNUM rnum FROM
J'obtiens l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
	SELECT /* + FIRST_ROWS(n) */ t.*||'|'||ROWNUM rnum FROM
	                                *
ERROR at line 3:
ORA-00923: FROM keyword not found where expected
Je vois pas trop comment faire pour avoir le même séparateur quelques soit le niveau de select et que chaque résultat soit sur une ligne ?

Merci d'avance.