Z instrukcji pod adresem:http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions184.htm#SQLRF51825
CURRENT_USER
Nazwa użytkownika bazy danych, którego uprawnienia są aktualnie aktywne. Może się to zmienić w czasie trwania sesji, aby odzwierciedlić właściciela dowolnego aktywnego obiektu uprawnień osoby definiującej. Gdy żaden obiekt praw definiującego nie jest aktywny, CURRENT_USER zwraca tę samą wartość co SESSION_USER. W przypadku użycia bezpośrednio w treści definicji widoku zwraca użytkownika, który wykonuje kursor, który używa widoku; nie uwzględnia widoków użytych w kursorze jako praw definiującego.
SESSION_USER
Nazwa użytkownika bazy danych podczas logowania. W przypadku użytkowników korporacyjnych zwraca schemat. W przypadku innych użytkowników zwraca nazwę użytkownika bazy danych. Ta wartość pozostaje taka sama przez cały czas trwania sesji.
Więc jest jest różnica między SESSION_USER i CURRENT_USER, zwłaszcza gdy CURRENT_USER jest używany w procedurze lub funkcji składowanej.
Muszę jednak przyznać, że nie wiem, co oznacza termin „użytkownik korporacyjny”.
Btw:jest trzeci:
SESSION_USERID
Identyfikator użytkownika bazy danych podczas logowania.