Из Oracle 10g CURRENT_USER , используемый в ответ Гэри Майерса , устарел. Oracle рекомендует использовать вместо этого параметр SESSION_USER, который:
Для корпоративных пользователей возвращает схему. Для других пользователей возвращается
имя пользователя базы данных, с помощью которого аутентифицируется текущий пользователь.
Это значение остается неизменным на протяжении всего сеанса.
Я бы использовал CURRENT_SCHEMA. Между CURRENT_SCHEMA есть небольшие различия, когда изменяется оператор ALTER SESSION SET CURRENT_SCHEMA
.
Нет необходимости выбирать из двойного; Вы можете присвоить возвращаемое значение SYS_CONTEXT непосредственно переменной.
DECLARE
v_current_schema varchar2(30);
BEGIN
v_current_schema := SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA');
dbms_output.put_line('I am using the schema [' || v_current_schema || ']');
END;