Oracle中的上下文

1.oracle中有默认创建的上下文叫做:userenv(user environment)
比如:SYS_CONTEXT(‘USERENV’,‘CURRENT_USER’)

2.除了默认创建的,还可以自定义上下文,用以下语句
DBMS_SESSION.SET_CONTEXT ( namespace VARCHAR2, attribute VARCHAR2, value VARCHAR2, username VARCHAR2, client_id VARCHAR2 );
前面三个参数是必填,后面两个默认为null
Namespace:要创建的上下文的名称
Attribute:上下文里面包含的属性
Value:为上下文传入的值。
3.创建上下文
A.创建与上下文相关的过程,也可以用packge
Create procedure xx_CONTEXT (SET_KEY varchar2,SET_VALUE VARCHAR2)
as
begin

dbms_session.set_context(‘SELF_CONTEXT’, SET_KEY, SET_VALUE);
end;

SELF_CONTEXT :自定义的上下文的名称
B. 创建上下文:
create or replace context SELF_CONTEXT using xx_CONTEXT;

using 后面是使用的过程名称

C.给上下文赋值

Begin
xx_CONTEXT(‘self_name’,’测试测试’);
end;

D.引用上下文,在查询中使用以下作为值来使用
select SYS_CONTEXT ('SELF_CONTEXT’, ’ self_name ') from dual;
查询结果:测试测试

4.注意:经测试,在同一个库中,只能创建并使用一个自定义的相同名称的上下文。在多个用户下创建多个相同的上下文会冲突

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值