【Oracle】自定义CONTEXT(上下文)

xixuefeng Oracle, SQL&Function, Utilities 2012-12-29 21:48:46 914 次浏览 【Oracle】自定义CONTEXT(上下文)已关闭评论
Oracle提供的 sys_context 函数来得到跟 session 相关的上下文,比如:

如果需要返回一些属于我们自己的上下文,当然,我们可以自己来定义

一、设置上下文

二、创建上下文语法

三、自定义上下文测试

1):创建一个简单的过程,过程的功能为初始化自定义上下文,以字符串形式返回系统时间的年月日

2):创建自定义上下文my_context,利用刚刚创建好的过程

3):验证自定义上下文my_context,结果返回为null,原因是,我们没有初始化’XXF’属性

4):手工执行一下过程sp_context

5):再次验证自定义上下文sys_context,返回了我们想要的结果,此时有朋友会问,这也太麻烦了,每次都需要手工执行一下过程,其实这个问题很好解决,我们可以通过触发器来解决此问题。

6):创建一个数据库级触发器,每次登陆后都触发过程sp_context

7):重新登陆一个新的会话,验证自定义上下文,成功。

四、小结:
1)创建上下文,默认情况下是ACCESSED GLOBALLY,SCOTT用户都可以直接使用。
2)本例只是一个简单的测试,如果有复杂的需求,那么可以在过程中完成复杂的逻辑来实现需求。
3)创建上下文需要有CREATE ANY CONTEXT的系统权限
回顶部