Tag Archives: oracle

Oracle i wyświetlenie uprawnień zalogowanego usera

Pytanie:

W jaki sposób wyświetlić zagrantowane role w Oracle dla obecnie zalogowanego usera:

Odpowiedź:

SELECT * FROM user_role_privs;

Więcej info na stronach Oracle (akurat ten opis pochodzi z dokumentacji  Oracle 10gR1): http://docs.oracle.com/cd/B12037_01/server.101/b10755/statviews_2614.htm

Może prosta rzecz ale czasem zdarza mi się zapomnieć…

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

SQLPLUS – dane wejściowe obcięte do 4 znaków

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)