ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sys_context的使用

sys_context的使用

原创 Linux操作系统 作者:lynch0227 时间:2010-01-04 17:19:04 0 删除 编辑
你可以使用sys_context函数得到一些session参数值,同时你可以定义自己的context,下面分别进行介绍:

1. 使用sys_context得到session参数值,类似于userenv函数的用法:
    具体语法如下:
    select SYS_CONTEXT('NAMESPACE','PARAMETER') from dual;
    oracle已经提供了一个namespace:userenv,而详细的parameter可以参见SQL Reference,下面仅举几个例子来进行说明:
    --查找session id:
       SELECT SYS_CONTEXT('USERENV','SESSIONID') FROM DUAL;
   --查找session user:
       SELECT SYS_CONTEXT('USERENV','SESSION_USER') FROM DUAL;
   --查找db name:
       SELECT SYS_CONTEXT('USERENV','DB_NAME') FROM DUAL;

2.定义自己的context
   总体来说只需要三步:
   1) 定义PACKAGE
        create or replace package test_context as
           procedure test (name in varchar2);
        end;
        /
        create or replace package body test_context as
           procedure test (name in varchar2)
              is
           begin
              dbms_session.set_context('my_context','name',name);
           end;
        end;
        /
     需要注意的是set_context中的namespace(即'my_context')必须要与后面创建的context name相一致;
   2) 定义Context
        create or replace context my_context using test_context;
        using的值就是前面定义的package name
   3) 至此前期的准备工作已经完成,然后就可以在sqlplus或者以command windows模式执行命令
        SQL> exec test_context.test('KKKK');
        SQL> select sys_context('my_context','name') from dual;
        结果为‘KKKK’
需要特别注意的是自定义的sys_context只限于在一个session,如果此session被kill掉,则select的结果为NULL。
             

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13129975/viewspace-624256/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: userenv的使用
下一篇: dbms_sql的使用
请登录后发表评论 登录
全部评论

注册时间:2009-04-02

  • 博文量
    32
  • 访问量
    75574