В чем разница между ora_database_name и sys_context ('userenv', 'service_name') - PullRequest
0 голосов
/ 27 июня 2018

В чем разница между ora_database_name и sys_context ('userenv', 'service_name'). Оба приведенных ниже запроса дают разные результаты.

select ora_database_name  from dual;
select sys_context('userenv','service_name') from dual;

Как и где найти фактическое имя базы данных?

1 Ответ

0 голосов
/ 27 июня 2018

ora_database_name является синонимом функции пакета dbms_standard.database_name. Я подозреваю, что это идентично

select sys_context('userenv','db_name') from dual; 

Однако sys_context('userenv','service_name') - это имя службы, которую вы используете в данный момент.

База данных может поддерживать более одного имени службы. Чтобы увидеть список:

SELECT name FROM all_services;
orclpdb1

Вы можете добавить дополнительные услуги ...

EXEC DBMS_SERVICE.CREATE_SERVICE('myservice', 'myservice');
EXEC DBMS_SERVICE.START_SERVICE('myservice', NULL);

SELECT name FROM all_services;
orclpdb1
myservice

... который затем можно использовать для подключения к базе данных ...

sqlplus user/pass@myhost:1521/myservice
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...