Sortie sur la machine cliente, via SQL dynamique
Bonjour,
Tout d'abord, désolé si ce sujet à déjà été traité, j'ai cherché mais n'ai trouvé aucune solution à mon problème:
Comment formater la sortie d'un PRINT d'un curseur?
Par exemple:
Code:
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
| set verify off
set head off
set feedback off
set trimspool on
set linesize 20000
set pagesize 0
SPOOL &1
variable x refcursor
declare
sql_str varchar2(32000);
begin
sql_str := q'#select 'a'||'|'||'b'||'|'||'c'||'|'||'d'||'|'||'e'||'|'||'f'||'|'||'g' from dual
union all
select 'a'||'|'||'b'||'|'||'c'||'|'||'d'||'|'||'e'||'|'||'f'||'|'||'g' from dual#';
open :x for sql_str;
end;
/
print x
exit |
Je voulais obtenir
Citation:
a|b|c|d|e|f|g
a|b|c|d|e|f|g
mais j'obtiens:
Code:
1 2
| a |b |c |d |e |f |g
a |b |c |d |e |f |g |
L'idée derrière tout ça est de réaliser des extractions de fichiers plats sur le poste client, de requête construites dynamiquement, ce qui m'interdit le package UTL_FILE (fichier généré sur le serveur) et le spool d'un bête select (car je dois construire la requête dynamiquement)... Mais je n'arrive pas à formater mon print...
Si quelqu'un voit une solution, je suis preneur :)