Encontrei uma solução melhor sem a necessidade de declarar/começar/terminar blocos de código ou instruções de consulta.
Um nome de arquivo de spool de amostra com a data e hora pode ser obtido por:
sql> column dt new_value _dt
sql> select to_char(sysdate,'ddMONyyyy_hh24mi') dt from dual;
sql> spool &_dt
Nome do meu arquivo:27JUN2011_1727.lst
Você pode até especificar a extensão do arquivo se precisar (por exemplo, .txt). Basta criar outra variável.
fonte:http://oracle.ittoolbox.com/groups/technical-functional/oracle-apps-l/variable-file-name-with-spool-1508529