En estos momentos no tengo a la mano mis pc con Oracle pero te dejo este que ha salido al vuelo... posiblemente alguna como o punto por ahi esta mal ya que como te repito no tengo Oracle en estos momentos a la mano.
Código:
DECLARE
miarchivo varchar2(50) default null;
BEGIN
Select to_char(sysdate, 'YYYYMMDD') miarchivo from dual ;
spool C:\&miarchivo.txt
select lpad(count(1),12,'0')||lpad(sum(monto),18,'0')||'0 0'||'R'||'' from dato;
...
...
Spool off;
END;