Я хочу проверить SID и текущее имя базы данных.
Я использую следующий запрос для проверки идентификатора безопасности оракула
select instance from v$thread;
но таблица или представление не существует, возникает ошибка.
Я использую следующий запрос для проверки текущего имени базы данных
select name from v$database;
но таблица или представление не существует, возникает ошибка.
Есть идеи по поводу двух вышеуказанных проблем?
select sys_context('userenv','db_name') from dual;
для имени базы данных и sid я уже добавил в ответ. надеюсь, это даст вам то, что вы хотитеЕсли, как и я, ваша цель - получить хост базы данных и SID для создания URL-адреса Oracle JDBC, как
следующие команды помогут:
Команда запроса Oracle для проверки SID (или имени экземпляра):
Команда запроса Oracle для проверки имени базы данных (или хоста сервера):
Att. Серджио Марсело
источник
Для полноты вы также можете использовать ORA_DATABASE_NAME.
Возможно, стоит отметить, что не все методы дают одинаковый результат:
источник
Представления V $ - это в основном динамические представления системных показателей. Они используются для настройки производительности, мониторинга сеансов и т. Д. Таким образом, по умолчанию доступ ограничен для пользователей DBA, поэтому вы и получаете
ORA-00942
.Самый простой способ найти имя базы данных:
Это представление предоставляется PUBLIC, поэтому любой может запросить его.
источник
Введите в
sqlplus
командной строкетогда вы увидите результат в командной строке
Здесь первое "ORCL" - это имя базы данных, может быть ваша система "XE" и другое, что было дано во время загрузки оракула.
источник
Как уже упоминалось выше,
это путь.
Вы не можете запросить v $ database / v $ instance / v $ thread, потому что у вашего пользователя нет необходимых разрешений. Вы можете предоставить их (через учетную запись администратора базы данных) с помощью:
источник