oracle查看context,oracle sys_context与dbms_session.set_context实现view动态查询

--创建包及包体(之前我仅创建包,未创建包体;且要定义一个存储过程

--调用dbms_session.set_context配置context的相关参数值

SQL> create or replace package pack_order_date

2  as

3   procedure put(key varchar2,value  varchar2);

4  end pack_order_date;

5  /

Package created

SQL> create or replace package body pack_order_date

2  as

3   procedure put(key varchar2,value  varchar2)

4    is

5   begin

6     dbms_session.set_context('my_context',key,value);

7   end;

8  end pack_order_date;

9  /

Package body created

--创建了包及包体,然后创建context,注意:此context要位于上述的包中

--且context的名称要与上述包体存储过程set_context的my_context一样

create or replace context my_context using pack_order_date;

--创建基于context的视图

SQL> create or replace view v_t_limit as select a,end_date from t_limit where end_date=sys_context('my_context','order_date');

View created

--执行包体存储过程为context属性order_date赋值

SQL> exec pack_order_date.put('order_date','2011');

PL/SQL procedure successfully completed

--查询视图,即可实现动化参数化查询视图了

SQL> select * from v_t_limit;

A END_DATE

--------------------------------------- ----------------------

2 2011

SQL> select * from t_limit;

A END_DATE

--------------------------------------- ----------------------

1 2013

2 2011

小结:1,sys_context使用,2个参数分别为:context及其属性

2,context属性用dbms_session.set_context配置

3,创建包及包体,为context的属性配置值

4,通过sys_context创建视图

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值