Znalazłem lepsze rozwiązanie bez konieczności deklarowania/rozpoczynania/kończenia bloków kodu lub zapytań.
Przykładową nazwę pliku buforowania z datą i godziną można uzyskać:
sql> column dt new_value _dt
sql> select to_char(sysdate,'ddMONyyyy_hh24mi') dt from dual;
sql> spool &_dt
Moja nazwa pliku:27JUN2011_1727.lst
W razie potrzeby możesz nawet określić rozszerzenie pliku (np. .txt). Po prostu utwórz kolejną zmienną.
źródło:http://oracle.ittoolbox.com/groups/technical-functional/oracle-apps-l/variable-file-name-with-spool-1508529