Från manualen på:http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions184.htm#SQLRF51825
CURRENT_USER
Namnet på den databasanvändare vars rättigheter för närvarande är aktiva. Detta kan ändras under en sessions varaktighet för att återspegla ägaren till alla aktiva definierares rättighetsobjekt. När ingen definierarens rättighetsobjekt är aktivt returnerar CURRENT_USER samma värde som SESSION_USER. När det används direkt i en vydefinition returnerar detta användaren som kör markören som använder vyn; den respekterar inte vyer som används i markören som definierarens rättigheter.
SESSION_USER
Namnet på databasanvändaren vid inloggning. För företagsanvändare, returnerar schemat. För andra användare, returnerar databasens användarnamn. Detta värde förblir detsamma under hela sessionen.
Så det finns en skillnad mellan SESSION_USER och CURRENT_USER, särskilt när CURRENT_USER används i en lagrad procedur eller funktion.
Jag måste erkänna att jag inte vet vad termen "företagsanvändare" betyder.
Btw:det finns en tredje:
SESSION_USERID
Identifieraren för databasanvändaren vid inloggning.