oracle 上下文 context测试

本文档介绍了Oracle数据库中的上下文(Context)测试,包括用户自定义的会话内和全局Context,以及系统Context的创建和使用。示例中展示了创建用户、授予权限以及使用SQL命令创建Context的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle 上下文 context测试

SQL> select * from V$version;


BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Prod
PL/SQL Release 10.2.0.2.0 - Production
CORE    10.2.0.2.0      Production
TNS for Linux: Version 10.2.0.2.0 - Production
NLSRTL Version 10.2.0.2.0 - Production


创建用户:

SQL> create user conuser identified by conuser;

SQL> grant create session,create procedure,create any context to conuser;


注意权限必要是:create any context



一。用户自定义context



会话内的context


conn conuser/conuser


创建context

create context tancon using tanpack;


SQL> create package tanpack as
procedure tancon_value(tancon_v in varchar2);
end tanpack;
/


  
SQL> create or replace package body tanpack as 
procedure tancon_value(tancon_v in varchar2) is
begin
dbms_session.set_context('tancon','tancon_a1','tancon_v value is:'||tancon_v);
end tancon_value;
end tanpack;
/


SQL> exec tanpack.tancon_value('bamuta');
SQL> select sys_context('tancon','tancon_a1') from dual;


SYS_CONTEXT('TANCON','TANCON_A1')
--------------------------------------------------------------------------------
tancon_v value is:bamuta




创建一个全局context
SQL> create context g_tancon using g_tanpack accessed globally;




SQL> create package g_tanpack as
  2  procedure tancon_value(t_value in varchar2);
  3  end g_tanpack;
  4  /






SQL> create or replace package body g_tanpack as
  2  procedure tancon_value(t_value in varchar2) is
  3  begin
  4  dbms_session.set_context('g_tancon','g_tancon_a1',t_value);
  5  end tancon_value;
  6  end g_tanpack;
  7  /
  
SQL> exec g_tanpack.tancon_value('bamuta');


PL/SQL procedure successfully completed.


SQL> select sys_context('g_tancon','g_tancon_a1') from dual;


SYS_CONTEXT('G_TANCON','G_TANCON_A1')
--------------------------------------------------------------------------------
bamuta


在其他用户,其他会话里均能查出该值来。


二。系统context



namespace 为USERENV的为系统定义好的,直接使用即可,比如:


SQL> SELECT SYS_CONTEXT ('USERENV', 'SESSION_USER')    FROM DUAL;  


SYS_CONTEXT('USERENV','SESSION_USER')
--------------------------------------------------------------------------------
SH






详细内容参见:


http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions165.htm#i1038176







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值