创建一个上下文

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