Szukaj…


Składnia

  • UTWÓRZ [LUB WYMIENIJ] KONTEKST przestrzeń nazw Z WYKORZYSTANIEM pakietu [schemat];
  • UTWÓRZ [LUB WYMIENIJ] KONTEKST przestrzeń nazw Z WYKORZYSTANIEM pakietu [schemat.] INICJALIZOWANY ZEWNĘTRZNIE;
  • UTWÓRZ [LUB WYMIEŃ] KONTEKST przestrzeń nazw Z KORZYSTANIEM z [schematu.] Pakiet ZINICJALIZOWANY GLOBALNIE;
  • TWORZENIE [LUB WYMIANA] KONTEKST przestrzeni nazw Z KORZYSTANIEM z [schematu.] Pakiet ACCESSED GLOBALLY;

Parametry

Parametr Detale
OR REPLACE Przedefiniuj istniejącą przestrzeń nazw kontekstu
przestrzeń nazw Nazwa kontekstu - jest to przestrzeń nazw dla wywołań SYS_CONTEXT
schemat Właściciel pakietu
pakiet Pakiet bazy danych, który ustawia lub resetuje atrybuty kontekstu. Uwaga: pakiet bazy danych nie musi istnieć, aby utworzyć kontekst.
INITIALIZED Podaj jednostkę inną niż Baza danych Oracle, która może ustawić kontekst.
EXTERNALLY Pozwól interfejsowi OCI zainicjować kontekst.
GLOBALLY Pozwól katalogowi LDAP zainicjować kontekst podczas ustanawiania sesji.
ACCESSED GLOBALLY Zezwól na dostęp do kontekstu w całej instancji - wiele sesji może współużytkować wartości atrybutów, o ile mają ten sam identyfikator klienta.

Uwagi

Dokumentacja Oracle (12cR1): http://docs.oracle.com/database/121/SQLRF/statements_5003.htm

Utwórz kontekst

CREATE CONTEXT my_ctx USING my_pkg;

Tworzy to kontekst, który można ustawić tylko przez procedury w pakiecie bazy danych my_pkg , np .:

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;

Teraz, jeśli sesja to zrobi:

my_pkg.set_ctx;

Może teraz pobrać wartość klucza w ten sposób:

SELECT SYS_CONTEXT('MY_CTX','THE KEY') FROM dual;

Value


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow