Как мне перечислить все контекстные пространства имен в БД Oracle? - PullRequest
5 голосов
/ 28 ноября 2011

Если я создаю пространство имен контекста: -

CREATE OR REPLACE CONTEXT hr_security
    USING hr.pkg_security
    ACCESSED GLOBALLY;

Как мне перечислить все такие пространства имен и посмотреть их свойства.Например, hr_security может иметь глобальный доступ и может быть установлен из пакета pkg_security.

1 Ответ

8 голосов
/ 28 ноября 2011

Вы можете запросить представление DBA_CONTEXT (или [ALL_CONTEXT][1]) в зависимости от ваших привилегий и контекста, который вы просматриваете.ALL_CONTEXT выведет список всех контекстов, атрибуты которых установлены в текущем сеансе.DBA_CONTEXT перечисляет все контексты в базе данных.Однако вам необходимо иметь дополнительные привилегии, чтобы иметь возможность запрашивать представление DBA_CONTEXT (привилегии SELECT ANY DICTIONARY или роли SELECT_CATALOG_ROLE было бы более чем достаточно, но вам также может быть предоставлен доступ к этому представлению специально)

SELECT namespace,
       schema,
       package,
       type
  FROM dba_context

будет иметь строку для пространства имен HR_SECURITY, показывающую, что он связан с пакетом PKG_SECURITY с TYPE из ACCESSED GLOBALLY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...