SET_CONTEXT¶
该过程用于设置上下文里的一个属性的值
声明¶
procedure set_context(namespace varchar2,
attribute varchar2,
value varchar2,
username varchar2 default null,
client_id varchar2 default null);
结构¶
| 参数 | 说明 |
|---|---|
| namespace | 上下文名称 |
| attribute | 属性名称 |
| value | 属性值 |
| username | (暂不支持此特性) |
| client_id | (暂不支持此特性) |
说明¶
不能调用此接口去修改数据库内置上下文 USERENV 的属性
如果指定的上下文并不存在,会报错
新设置的属性值,会覆盖掉旧的属性值
在 ORACLE 数据库里,只有在创建上下文时指定的那个包内部,才有权限调用本接口去设置它的属性值
目前神通数据库里没有这种权限检查
示例¶
--创建上下文
CREATE OR REPLACE CONTEXT CTT_TEST USING PRO_TEST;
--创建上下文所需函数
CREATE OR REPLACE PROCEDURE PRO_TEST(CTTNAME VARCHAR2, PARAM VARCHAR2, PVALUE VARCHAR2) AS
BEGIN
DBMS_SESSION.SET_CONTEXT(CTTNAME, PARAM, PVALUE);
END;
/
--设置上下文属性值
EXEC PRO_TEST('CTT_TEST', 'PARAM0', 'HELLO WORLD');
--获取上下文属性值
SELECT SYS_CONTEXT('CTT_TEST', 'PARAM0') FROM DUAL;
SYS_CONTEXT(text) |
-----------------------
HELLO WORLD |
总数目:1
--删除上下文
DROP CONTEXT CTT_TEST;