Chyba każdy kto zajmował się choć trochę automatycznym raportowaniem z baz Oracolowych stanął przed problemem w jaki sposób ustawić odpowiednio nazwę pliku, zawierającą przykładowo dzień wczorajszy w nazwie (moj_raport_YYYYMMDD).
Akurat w moim przypadku wykorzystywany jest skrypt uruchamiający sqlplusa ze wskazaniem pliku sql do wykonania. Manipulowałem datą wprost z tego skryptu , jednak uzyskanie daty wczorajszej korzystając z poleceń batchowych w MS Windows nie jest tak proste. Żądany efektu uzyskałem w bardzo prosty sposób używając vbscript, jednak to rozwiązanie mnie nie zadowalało.
Najłatwiejsze – niezależne od systemu rozwiązanie polega na podaniu odpowiednio sformatowanej daty wprost z sqlplus:
set linesize 160
set pages 0
column dcol new_value datagen noprint
select to_char(sysdate-1,'YYYYMMDD') dcol from dual;
spool moj_raport_&datagen..csv
/* Poniżej raport właściwy */
SELECT * from jakas_tabela;
spool off
exit