Quando precisamos demonstrar graficos, tabelas no excel, uma idéia é fazer um spool com delimitadores para abrir o resultado no Excel por exemplo, uma otíma sugestão é utilizar o markup html, que gera tabelas e linhas com o resultado em HTML, porem estes são interpretados pelo MS-Excel também assim podem ser abertos normalmente.
Segue o procedimento a ser feito:
set feed off markup html on set pages 5000 lines 200 spool a.xls select * from user_objects; spool off set markup html off
Abrindo o arquivo a.xls resultado será:
Todas as versões de oracle são suportadas.

Autor: Rafael Stoever
Bacharel em Sistema de Informação pela Uniasselvi, atualmente cursando Gerenciamento de Projetos em TI pela Pós Graduação Uniasselvi. Atuo como Analista de suporte a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).
Olá Rafael, post bastante interessante onde vai me ajudar bastante aqui no meu dia a dia. Mas eu consigo colocar uma query maior com mais de 10 linhas dentro desse markup ?
Pelo que entendi da sua pergunta você pode fazer qualquer query (10 linhas ou mais) após setar o “markup html on”.
Rafael, estou fazendo dessa forma conforme exemplo abaixo e não funciona. Mas quando eu executo um select sendo escrito por em uma linha funciona.
set feed off markup html on
set pages 5000 lines 200
spool C:\TEMP\a.xls
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
spool off
set markup html off
Qual o erro? Pelo comando que mencionasse o (s) pode ser o erro da sua sintaxe.