Aus dem Handbuch unter:http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions184.htm#SQLRF51825
CURRENT_USER
Der Name des Datenbankbenutzers, dessen Berechtigungen derzeit aktiv sind. Dies kann sich während der Dauer einer Sitzung ändern, um den Eigentümer eines beliebigen Objekts mit Rechten eines aktiven Definierers widerzuspiegeln. Wenn kein Rechteobjekt des Definierers aktiv ist, gibt CURRENT_USER den gleichen Wert wie SESSION_USER zurück. Bei direkter Verwendung im Hauptteil einer Ansichtsdefinition gibt dies den Benutzer zurück, der den Cursor ausführt, der die Ansicht verwendet; es respektiert Ansichten, die im Cursor verwendet werden, nicht als Rechte des Definierers.
SESSION_USER
Der Name des Datenbankbenutzers bei der Anmeldung. Gibt für Unternehmensbenutzer das Schema zurück. Gibt für andere Benutzer den Datenbankbenutzernamen zurück. Dieser Wert bleibt während der gesamten Sitzungsdauer gleich.
Also gibt es ein Unterschied zwischen SESSION_USER und CURRENT_USER, insbesondere wenn CURRENT_USER in einer gespeicherten Prozedur oder Funktion verwendet wird.
Ich muss allerdings zugeben, dass ich nicht weiß, was der Begriff „Unternehmensbenutzer“ bedeutet.
Übrigens:es gibt noch einen dritten:
SESSION_USERID
Die Kennung des Datenbankbenutzers bei der Anmeldung.