W szybki sposób można sprawdzić wersję bazy Oracle przy wykorzystaniu zapytań:
select * from v$version;
select * from product_component_version;
lub
przy wykorzystaniu klienta SQLplus.
Wersja bazy wyświetli się w banerze po zalogowaniu.
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
W kilku przypadkach podczas generowania raportu z wykorzystaniem sqlplus’a ostatni wiersz zawierał komunikat: “Dane wejściowe obcięte do 4 znaków”.
Okazało się że problem tkwi w braku zakończenia linii w ostatnim wierszu. Ostatni wiersz zawierał słowo “EXIT”, stąd w/w 4 znaki. W przypadku innego tekstu liczba ta ulega zmianie.
Rozwiązanie: dodanie znacznika końca linii na końcu skryptu (a raczej po ostatnim poleceniu)