Recherche…


Syntaxe

  • CREATE [OU REPLACE] CONTEXT namespace UTILISATION du package [schema.];
  • CREATE [OU REPLACE] CONTEXT namespace UTILISATION du package [schema.] INITIALIZED EXTERNALLY;
  • CREATE [OU REPLACE] CONTEXT namespace UTILISATION du package [schema.] INITIALIZED GLOBALLY;
  • CREATE [OU REPLACE] CONTEXT namespace UTILISATION du package [schema.] ACCESS GLOBALLY;

Paramètres

Paramètre Détails
OR REPLACE Redéfinir un espace de nom de contexte existant
espace de noms Nom du contexte - c'est l'espace de noms pour les appels à SYS_CONTEXT
schéma Propriétaire du forfait
paquet Package de base de données qui définit ou réinitialise les attributs de contexte. Remarque: le package de base de données ne doit pas nécessairement exister pour créer le contexte.
INITIALIZED Spécifiez une entité autre que Oracle Database qui peut définir le contexte.
EXTERNALLY Autorise l'interface OCI à initialiser le contexte.
GLOBALLY Autoriser l'annuaire LDAP à initialiser le contexte lors de l'établissement de la session.
ACCESSED GLOBALLY Autoriser le contexte à être accessible dans toute l'instance - plusieurs sessions peuvent partager les valeurs d'attribut tant qu'elles ont le même ID client.

Remarques

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

Créer un contexte

CREATE CONTEXT my_ctx USING my_pkg;

Cela crée un contexte qui ne peut être défini que par les routines du package de base de données my_pkg , par exemple:

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;

Maintenant, si une session fait cela:

my_pkg.set_ctx;

Il peut maintenant récupérer la valeur de la clé:

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

Value


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow