Categories
Bazy danych

Oracle (sqlplus) – generowanie raportów do CSV z datą w nazwie

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

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.