oracle查看context,oracle context(上下文)
context在计算机领域翻译为上下文
context的信息也就是当前会话中的环境变量,如:登录的session_id,用户名,语言等信息
查看context中的属性信息。
oracle默认的为我们创建了一个context叫userenv(user environment)
SYS_CONTEXT('USERENV','TERMINAL')
SYS_CONTEXT('USERENV','LANGUAGE')
SYS_CONTEXT('USERENV','SESSIONID')
SYS_CONTEXT('USERENV','INSTANCE')
SYS_CONTEXT('USERENV','ENTRYID')
SYS_CONTEXT('USERENV','ISDBA')
SYS_CONTEXT('USERENV','NLS_TERRITORY')
SYS_CONTEXT('USERENV','NLS_CURRENCY')
SYS_CONTEXT('USERENV','NLS_CALENDAR')
SYS_CONTEXT('USERENV','NLS_DATE_FORMAT')
SYS_CONTEXT('USERENV','NLS_DATE_LANGUAGE')
SYS_CONTEXT('USERENV','NLS_SORT')
SYS_CONTEXT('USERENV','CURRENT_USER')
SYS_CONTEXT('USERENV','CURRENT_USERID')
SYS_CONTEXT('USERENV','SESSION_USER')
SYS_CONTEXT('USERENV','SESSION_USERID')
SYS_CONTEXT('USERENV','PROXY_USER')
SYS_CONTEXT('USERENV','PROXY_USERID')
SYS_CONTEXT('USERENV','DB_DOMAIN')
SYS_CONTEXT('USERENV','DB_NAME')
SYS_CONTEXT('USERENV','HOST')
SYS_CONTEXT('USERENV','OS_USER')
SYS_CONTEXT('USERENV','EXTERNAL_NAME')
SYS_CONTEXT('USERENV','IP_ADDRESS')
SYS_CONTEXT('USERENV','NETWORK_PROTOCOL')
SYS_CONTEXT('USERENV','BG_JOB_ID')
SYS_CONTEXT('USERENV','FG_JOB_ID')
SYS_CONTEXT('USERENV','AUTHENTICATION_TYPE')
SYS_CONTEXT('USERENV','AUTHENTICATION_DATA')
例子:
产看当前session的字符集信息
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
创建自定义oracle context
Application Context是内存中的一组name-value对,application context从属于某个命名空间(namespace);
用户只能通过一个自定义封装包或存储过程中调用dbms_session.set_context来设置application context的值;
用户使用sys_context(,)来获取某个application context的值。
语法:
DBMS_SESSION.SET_CONTEXT
( namespaceVARCHAR2, attribute VARCHAR2, value VARCHAR2, username VARCHAR2, client_idVARCHAR2 );
namespacecontext的命名空间--必要参数
attribute属性值--必要参数
value值--必要参数
username用户名(默认为Null)--可选参数
client_id指定的clientid --可选参数
Application context分为三种
dabase session-based application context--local application context
global application context--global application context
client session-based application context--通过OCI管理使用的,存储在客户端内存的context
Local applicationcontext
context存储在UGA中,本地context是session/server process级别的,当会话/serverprocess终止时,context也会结束
Global application context
context存储在SGA中,SGA消失,全局context也就会结束;它常常用于跨会话,应用于与会话无关的场景
例子:
1.创建一个context
SQL> create context context_only using pkg_only;
Context created.
2.建立与上下文先关的包来封装(也就是上面的pkg_name)
SQL> create package pkg_only
2 as
3 procedure put(key varchar2,value varchar2);
4 end;
5 /
Package created.
SQL> create package body pkg_only
2 as
3 procedure put(key varchar2,value varchar2)
4 as
5 begin
6 dbms_session.set_context('context_only',key,value);
7 end;
8 end;
9 /
Package body created.
3.设置存储过程输入输出
SQL> exec pkg_only.put('name','only');
PL/SQL procedure successfully completed.
4.调用context
SQL> select sys_context('context_only','name') from dual;
SYS_CONTEXT('CONTEXT_ONLY','NAME')
--------------------------------------------------------------------------------
only
dbms_session.set_context有两个默认值为NULL的参数:username、client_id
username= null , client_id=null。所有用户都能访问。
username= null, client_id=。只要session 的client_id =,而不管username,都能访问。
username= , client_id=null。只要session使用指定的oracle schema登陆,不管client_id,都能访问。
username= , client_id=. 常用于statless web session ,如http。
username= , client_id= . 该username将用于数据库连接池的owner。
整理自网络
oracle查看context,oracle context(上下文)相关推荐
- oracle 查看crs,Oracle如何查询当前的crs/has自启动状态
我们知道在某些停机测试场景,是需要人为禁用crs/has的自启动的,防止过程中主机反复重启对数据库集群造成影响. 使用crsctl disable/enable crs命令可以禁用/启用crs的自启动 ...
- oracle查看历史oracle database数据库版本并下载
1.访问https://edelivery.oracle.com/osdc/faces/SoftwareDelivery 2.搜索框查找"Oracle Database 12c" ...
- oracle 查看用户日志,Oracle查看用户操作sql语句以及数据库日志
--查看日志文件 select member from v$logfile; --查看表空间使用情况 SELECT SUM(bytes) / (1024 * 1024) AS free_space, ...
- 201921 oracle查看当前oracle版本及补丁版本
好久不写博客... 其实所有的写作,都是为了给自己备个档,给自己一次记忆,顺便,帮助了别人而已~ 所以,要多写~ 其实还有一个感悟,所有的知识来自于书本,这样才能成体系. 所有零散的技巧和知识点都不能 ...
- oracle 查看并行数据库,Oracle数据库并行查询出错的解决方法
Oracle的并行查询是使用多个操作系统级别的Server Process来同时完成一个SQL查询,本文讲解Oracle数据库并行查询出错的解决方法如下: 1.错误描述 ORA-12801: 并行查询 ...
- oracle查看dlink,oracle创建dlink方法
当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据.下面讲介绍如何在本地数 ...
- Oracle查看SQL执行计划的方式
Oracle查看SQL执行计划的方式 获取Oracle sql执行计划并查看执行计划,是掌握和判断数据库性能的基本技巧.下面案例介绍了多种查看sql执行计划的方式: 基本有以下几种方式: 1.通过sq ...
- Oracle 查看 SQL执行计划
Oracle 查看 SQL执行计划 SQL性能分析 执行计划可以用来分析SQL的性能 一.查看执行计划的方法 1. 设置autotrace set autotrace off: 此为默认值,即关闭au ...
- Oracle查看执行计划的几种方法
Oracle查看执行计划的几种方法 一般来说,有如下几种获取执行计划的方式: 1.AUTOTRACE方式 AUTOTRACE是Oracle自带的客户端工具SQL*Plus的一个特性.启用AUTOTRA ...
最新文章
- 旷视张祥雨:高效轻量级深度模型的研究和实践 | AI ProCon 2019
- pandas使用shift函数对数数据进行向上偏移(-1)或者向下偏移(1)、索引不移动,移动之后无值的赋值为NaN、将原数据列与偏移后的数据列相加生成新的数据列
- 差点吓尿,手贱不要乱点support native debug
- Java 构造方法中super()的作用以及使用
- python文本分词_【Python】使用jieba对文本进行分词
- php+控制器+数据库,Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法_PHP...
- Serverless 实战 —— 轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
- ORACLE中的自治事务
- 电脑用电量_为什么换了智能电表后,我家用电量一下子多了这么多呢?
- java求阶乘不内存溢出_java - Java阶乘GUI - 堆栈内存溢出
- 【问题记录】git报错:[remote rejected] (pre-receive hook declined)
- linux下mysql修改时区,linux修改系统时区
- git撤回上一次push
- 小程序中关于敏感词汇检测
- 【CAPL】CAPL的简单介绍及变量
- 最大公约数和最小公倍数,你知道有几种求法吗?
- 用Python基础创建一个简单的注册登录系统
- 每日一道Leetcode算法——Fibonacci Number——2019.02.01
- 这个假期有这些游戏就不怕无聊了
- 面试大盘点,面了12家软件公司测试岗位,我真的尽力了...
热门文章
- Centos出现-bash: unzip: command not found的解决办法
- HSF服务注册失败,项目启动后,EDAS列表无法发现注册的服务
- 学习笔记之数据可视化(二)——页面布局(中)
- 微信小程序---实现弹窗效果
- regedit或child_process添加注册表
- JavaScript-获得和设置表单的值
- html-表单初级验证
- python中idle怎么打开_为什么我的python脚本只打开IDLE?
- linux创建定时任务命令,linux设置定时任务的方法步骤
- 猫眼java开发暑期实习_校招|猫眼 Android日常实习一面面经