使用SYS_CONTEXT
使用SYS_CONTEXT
1、什么是SYS_CONTEXT?
SYS_CONTEXT 函数是Oracle提供的一个获取环境上下文信息的预定义函数。
该函数用来返回一个指定namespace下的parameter值。该函数可以在SQL和PL/SQL语言中使用。
上下文定义
(a set of application-defined attributes that validates and secures an application 一组由应用程序定义的属性用于验证和保护应用。)
2、语法
SYS_CONTEXT 语法格式:SYS_CONTEXT(‘namespace’,’parameter’{,LENGTH});
其中,namespace是存储信息的一个组group单位,namespace是按照类别进行分类的。
一个namespace下可以有多个参数值,通过不同的parameter进行区分。namespace是预先定义好的SQL标识符,而parameter是可以任意大小写非敏感的字符串,不超过30位长度。
函数返回值为varchar2类型,长度默认为256位。如果需要限制这个默认值,可以数据length参数作为新的返回长度值。
3、预定义的namespace – USERENV
常用parameters:
SELECT SYS_CONTEXT ('USERENV', 'TERMINAL') terminal,
SYS_CONTEXT ('USERENV', 'LANGUAGE') language,
SYS_CONTEXT ('USERENV', 'SESSIONID') sessionid,
SYS_CONTEXT ('USERENV', 'INSTANCE') instance,
SYS_CONTEXT ('USERENV', 'ENTRYID') entryid,
SYS_CONTEXT ('USERENV', 'ISDBA') isdba,
SYS_CONTEXT ('USERENV', 'NLS_TERRITORY') nls_territory,
SYS_CONTEXT ('USERENV', 'NLS_CURRENCY') nls_currency,
SYS_CONTEXT ('USERENV', 'NLS_CALENDAR') nls_calendar,
SYS_CONTEXT ('USERENV', 'NLS_DATE_FORMAT') nls_date_format,
SYS_CONTEXT ('USERENV', 'NLS_DATE_LANGUAGE') nls_date_language,
SYS_CONTEXT ('USERENV', 'NLS_SORT') nls_sort,
SYS_CONTEXT ('USERENV', 'CURRENT_USER') current_user,
SYS_CONTEXT ('USERENV', 'CURRENT_USERID') current_userid,
SYS_CONTEXT ('USERENV', 'SESSION_USER') session_user,
SYS_CONTEXT ('USERENV', 'SESSION_USERID') session_userid,
SYS_CONTEXT ('USERENV', 'PROXY_USER') proxy_user,
SYS_CONTEXT ('USERENV', 'PROXY_USERID') proxy_userid,
SYS_CONTEXT ('USERENV', 'DB_DOMAIN') db_domain,
SYS_CONTEXT ('USERENV', 'DB_NAME') db_name,
SYS_CONTEXT ('USERENV', 'HOST') HOST,
SYS_CONTEXT ('USERENV', 'OS_USER') os_user,
SYS_CONTEXT ('USERENV', 'EXTERNAL_NAME') external_name,
SYS_CONTEXT ('USERENV', 'IP_ADDRESS') ip_address,
SYS_CONTEXT ('USERENV', 'NETWORK_PROTOCOL') network_protocol,
SYS_CONTEXT ('USERENV', 'BG_JOB_ID') bg_job_id,
SYS_CONTEXT ('USERENV', 'FG_JOB_ID') fg_job_id,
SYS_CONTEXT ('USERENV', 'AUTHENTICATION_TYPE') authentication_type,
SYS_CONTEXT ('USERENV', 'AUTHENTICATION_DATA') authentication_data
FROM DUAL;
4、创建自定义上下文–CREATE CONTEXT
SQL> create context test using set_test_context;
Context created.
SQL> create or replace procedure set_test_context(value in varchar2) is
2 begin
3 dbms_session.set_context('test','key',value);
4 end set_test_context;
5 /
Procedure created.
SQL> exec set_test_context('This is a context set value!');
PL/SQL procedure successfully completed.
SQL> select sys_context('test','key') show_value from dual;
SHOW_VALUE
-------------------------------------------------------------------
This is a context set value!
更多信息请参考:
SYS_CONTEXT
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions165.htm
CREATE CONTEXT
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5002.htm#i2060927
使用SYS_CONTEXT的更多相关文章
- Oracle SYS_CONTEXT Function
Version 11.1 Actions As SYS Note: USERENV is an Oracle provided namespace that describes the curre ...
- SYS_CONTEXT 详细用法
SELECT SYS_CONTEXT ('USERENV', 'TERMINAL') terminal, SYS_CONTEXT ('USERENV', 'LANGUAGE') lang ...
- [转帖学习]Oracle的 SYS_CONTEXT 函数简介
Oracle的 SYS_CONTEXT 函数简介 https://blog.csdn.net/IndexMan/article/details/48606369 1.什么是SYS_CONTEXT? S ...
- Oracle SYS_CONTEXT用法
1. USERENV(OPTION) 返回当前的会话信息. OPTION='ISDBA'若当前是DBA角色,则为TRUE,否则FALSE. OPTION='LANGUAGE'返回数据库的字符集. OP ...
- 说说sys_context函数
select SYS_CONTEXT('USERENV', 'TERMINAL') terminal, SYS_CONTEXT('USERENV', 'LANGUAGE') langua ...
- Oracle创建上下文 SYS_CONTEXT
Oracle创建上下文 SYS_CONTEXT 1. 系统默认的一些参数 set heading offselect SYS_CONTEXT('USERENV', 'TERMINAL') termin ...
- oracle函数 SYS_CONTEXT(c1,c2)
[功能]返回系统c1对应的c2的值.可以使用在SQL/PLSQL中,但不可以用在并行查询或者RAC环境中 [参数] c1,'USERENV' c2,参数表,详见示例 [返回]字符串 [示例] sele ...
- ORACLE中STATUS为INACTIVE但是SERVER为SHARED状态的会话浅析
我们知道当ORACLE数据库启用共享服务器模式时,通过共享服务器模式连接到数据库的会话是有一些特征的.在v$session里面,其SERVER的状态一般为SHARED和NONE, 为SHARED时,表 ...
- 完整记录一则Oracle 11.2.0.4单实例打PSU补丁的过程
本文记录了打PSU的全过程,意在体会数据库打PSU补丁的整个过程. 1.OPatch替换为最新版本2.数据库软件应用19121551补丁程序3.数据库应用补丁4.验证PSU补丁是否应用成功 1.OPa ...
- Oracle导出excel
oracle导出excel(非csv)的方法有两种,1.使用sqlplus spool,2.使用包体 现将网上相关代码整理后贴出以备不时之需: 使用sqlplus: 使用sqlplus需要两个文件: ...
随机推荐
- http-自签证书
1. 背景 证书需要向云服务提供商购买,是需要付费,但用在应用开发场景是不合适的,需要开发者自己自签证书进行测试 2. 工具包 Cygwin a large collection of GNU and ...
- [转帖]配置cri-docker使kubernetes1.24以docker作为运行时
从kubernetes 1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作 ...
- Oracle 高低水位线的学习
Oracle 高低水位线的学习 背景 最近产品的一些脚本会大量的给一些流程表里面插入数据 因为只是一个流程相关没有时序查询的需求 所以数据量挺大, 但是按照石时间戳删除非常麻烦. 自己执行过多次del ...
- Oracle 监控客户端的连接数量趋势
Oracle 监控客户端的连接数量趋势 背景 前期简单总结了table方式将表信息展示出来的方法 但是感觉这样非常不直观. 想着能够做出一个趋势来. 时序数据库的最佳的使用方式. 之前的确是太靠自己的 ...
- [转帖]TiDB系统调参实战经验
https://tidb.net/blog/c9466c40#TiDB%E7%B3%BB%E7%BB%9F%E8%B0%83%E5%8F%82%E5%AE%9E%E6%88%98%E7%BB%8F%E ...
- HotSpare 9361Raid卡热备盘的设置过程
HotSpare 9361Raid卡热备盘的设置过程 摘要 公司最近一批服务器到位(去年生产) 插满24盘位的 960G 的SSD 的超融合服务器. (硬盘是镁光的 !-_-!) 想着Raid6虽然数 ...
- CPU实际频率查看
cat /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq
- 验证功能访问Redis的次数和命令
背景 公司内部在进行性能调优, 调优有多个方法. 应用Redis方面主要的调优有: 1. 进行redis键值对大小的处理. 2. 进行redis键值对过期时间的处理. 3. 减少连接数,减少网络带宽. ...
- SpringBoot实现动态数据源配置
场景描述: 前一阵子接手的新项目中需要使用2个数据源. 一个叫行云数据库,一个叫OceanBase数据库. 就是说,我有时候查询要查行云的数据,有时候查询要查 OceanBase 的数据,咋办? 废话 ...
- 【三】分布式训练---单机多卡与多机多卡组网(飞桨paddle2.0+)更加推荐spawn方式!
1. 单机多卡启动并行训练 飞桨2.0增加paddle.distributed.spawn函数来启动单机多卡训练,同时原有的paddle.distributed.launch的方式依然保留. padd ...