Suche…


Syntax

  • CREATE [ODER REPLACE] CONTEXT-Namespace USING [Schema.] Paket;
  • CREATE [ODER REPLACE] CONTEXT-Namespace USING [Schema.] Paket INITIALIZED EXTERNALLY;
  • CREATE [ODER REPLACE] CONTEXT-Namespace USING [Schema.] Paket INITIALIZED GLOBALLY;
  • CREATE [ODER REPLACE] CONTEXT-Namespace USING [Schema.] Paket ACCESSED GLOBALLY;

Parameter

Parameter Einzelheiten
OR REPLACE Definieren Sie einen vorhandenen Kontext-Namespace neu
Namensraum Name des Kontexts - Dies ist der Namespace für Aufrufe von SYS_CONTEXT
Schema Besitzer des Pakets
Paket Datenbankpaket, das die Kontextattribute setzt oder zurücksetzt. Hinweis: Das Datenbankpaket muss nicht vorhanden sein, um den Kontext zu erstellen.
INITIALIZED Geben Sie eine andere Entität als Oracle Database an, die den Kontext festlegen kann.
EXTERNALLY Erlauben Sie der OCI-Schnittstelle, den Kontext zu initialisieren.
GLOBALLY Erlauben Sie dem LDAP-Verzeichnis, den Kontext beim Einrichten der Sitzung zu initialisieren.
ACCESSED GLOBALLY Zugriff auf den Kontext in der gesamten Instanz zulassen - Mehrere Sitzungen können sich die Attributwerte teilen, sofern sie dieselbe Client-ID haben.

Bemerkungen

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

Erstellen Sie einen Kontext

CREATE CONTEXT my_ctx USING my_pkg;

Dadurch wird ein Kontext erstellt, der nur durch Routinen im Datenbankpaket my_pkg , z.

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;

Wenn nun eine Sitzung dies tut:

my_pkg.set_ctx;

Es kann jetzt den Wert für den Schlüssel abrufen:

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

Value


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow