Oracle Database
Создание контекста
Поиск…
Синтаксис
- СОЗДАТЬ [ИЛИ ЗАМЕНИТЬ] пространство имен CONTEXT ИСПОЛЬЗОВАНИЕ [схема];
- СОЗДАТЬ [ИЛИ ЗАМЕНИТЬ] пространство имен CONTEXT ИСПОЛЬЗОВАНИЕ [схема] пакет INITIALIZED EXTERNALLY;
- СОЗДАТЬ [ИЛИ ЗАМЕНИТЬ] пространство имен CONTEXT ИСПОЛЬЗОВАНИЕ [схема] пакет INITIALIZED GLOBALY;
- СОЗДАТЬ [ИЛИ ЗАМЕНИТЬ] пространство имен CONTEXT ИСПОЛЬЗОВАНИЕ [схема] пакет ДОСТУП К ГЛОБАЛЬНО;
параметры
параметр | подробности |
---|---|
OR REPLACE | Переопределить существующее пространство имен контекста |
Пространство имен | Имя контекста - это пространство имен для вызовов SYS_CONTEXT |
схема | Владелец пакета |
пакет | Пакет базы данных, который устанавливает или сбрасывает атрибуты контекста. Примечание. Пакет базы данных не должен существовать для создания контекста. |
INITIALIZED | Укажите объект, отличный от базы данных Oracle, который может установить контекст. |
EXTERNALLY | Разрешить интерфейсу OCI инициализировать контекст. |
GLOBALLY | Разрешить каталогу LDAP инициализировать контекст при создании сеанса. |
ACCESSED GLOBALLY | Разрешить контекст быть доступным во всем экземпляре - несколько сеансов могут совместно использовать значения атрибутов, если они имеют одинаковый идентификатор клиента. |
замечания
Документация Oracle (12cR1): http://docs.oracle.com/database/121/SQLRF/statements_5003.htm
Создать контекст
CREATE CONTEXT my_ctx USING my_pkg;
Это создает контекст, который может быть установлен только подпрограммами в пакете базы данных my_pkg
, например:
CREATE PACKAGE my_pkg AS
PROCEDURE set_ctx;
END my_pkg;
CREATE PACKAGE BODY my_pkg AS
PROCEDURE set_ctx IS
BEGIN
DBMS_SESSION.set_context('MY_CTX','THE KEY','Value');
DBMS_SESSION.set_context('MY_CTX','ANOTHER','Bla');
END set_ctx;
END my_pkg;
Теперь, если сеанс делает это:
my_pkg.set_ctx;
Теперь он может получить значение для ключа таким образом:
SELECT SYS_CONTEXT('MY_CTX','THE KEY') FROM dual;
Value
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow