Zoeken…


Syntaxis

  • CREATE [OF VERVANG] CONTEXT-naamruimte MET [pakket.] -Pakket;
  • CREATE [OF VERVANG] CONTEXT-naamruimte MET [schema.] -Pakket EXTERN INITIALISED;
  • CREATE [OF VERVANG] CONTEXT-naamruimte MET [schema.] -Pakket WERELDWIJD GEÏNITIALISEERD;
  • CREATE [OF VERVANG] CONTEXT-naamruimte MET [schema.] -Pakket WERELDWIJD TOEGANG;

parameters

Parameter Details
OR REPLACE Definieer een bestaande contextnaamruimte opnieuw
namespace Naam van de context - dit is de naamruimte voor aanroepen naar SYS_CONTEXT
schema Eigenaar van het pakket
pakket Databasepakket dat de contextkenmerken instelt of opnieuw instelt. Opmerking: het databasepakket hoeft niet te bestaan om de context te maken.
INITIALIZED Geef een andere entiteit dan Oracle Database op die de context kan instellen.
EXTERNALLY Laat de OCI-interface de context initialiseren.
GLOBALLY Laat de LDAP-directory de context initialiseren bij het tot stand brengen van de sessie.
ACCESSED GLOBALLY Zorg ervoor dat de context gedurende het hele exemplaar toegankelijk is - meerdere sessies kunnen de kenmerkwaarden delen zolang ze dezelfde Client-ID hebben.

Opmerkingen

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

Creëer een context

CREATE CONTEXT my_ctx USING my_pkg;

Dit creëert een context die alleen kan worden ingesteld door routines in het databasepakket my_pkg , bijvoorbeeld:

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;

Als een sessie dit nu doet:

my_pkg.set_ctx;

Het kan nu de waarde voor de sleutel ophalen:

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

Value


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow