博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SYS_CONTEXT 详细用法
阅读量:6721 次
发布时间:2019-06-25

本文共 2957 字,大约阅读时间需要 9 分钟。

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;

SYS_CONTEXT 函数是Oracle提供的一个获取环境上下文信息的预定义函数。

该函数用来返回一个指定namespace下的parameter值。该函数可以在SQL和PL/SQL语言中使用。

SYS_CONTEXT 实际上就是一个Oracle存储和传递参数的容器访问函数。

我们登入Oracle服务器,是带有会话信息session_info和其他一些属性信息。

其中,有一些是Oracle预定义的,登录系统的时候自动填入到指定的变量中。还有一些是我们自己定义到其中,用于传递值使用的。

SYS_CONTEXT 语法格式:SYS_CONTEXT('namespace','parameter'{,LENGTH});

其中,namespace是存储信息的一个组group单位,namespace是按照类别进行分类的。

一个namespace下可以有多个参数值,通过不同的parameter进行区分。namespace是预先定义好的SQL标识符,而parameter是可以任意大小写非敏感的字符串,不超过30位长度。

函数返回值为varchar2类型,长度默认为256位。如果需要限制这个默认值,可以数据length参数作为新的返回长度值。

设置namespace指定parameter值,可以使用dbms_session.set_context方法进行。

[oracle@ebs12vis ~]$ sqlplus apps/apps

SQL*Plus: Release 11.1.0.7.0 - Production on Thu Oct 30 20:23:36 2014

Copyright (c) 1982, 2008, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

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!

转载地址:http://udcmo.baihongyu.com/

你可能感兴趣的文章
湖南多校对抗赛(2015.05.03)Problem B: War
查看>>
hdu 3986 Harry Potter and the Final Battle
查看>>
NYIST OJ 题目20 吝啬的王国
查看>>
在500jsp错误页面获取错误信息
查看>>
python常见示例->web简单示例
查看>>
centos7下安装部署mongodb集群(副本集模式)
查看>>
[BZOJ] 1334: [Baltic2008]Elect
查看>>
Jquery对象---Jquery API (2)
查看>>
PHP ReflectionClass
查看>>
swift历史
查看>>
mysql导入大量数据时报MySQL server has gone away错误的解决办法
查看>>
socket简单理解
查看>>
过滤HTML
查看>>
临时表 表变量 游标
查看>>
关于 iTunes Store 授权和取消授权
查看>>
React文档(十三)思考React
查看>>
公司部门和职位
查看>>
python内置函数中的map,filter,reduce函数例子
查看>>
我的Android进阶之旅------>对Java中注释/**@hide*/的初步认识
查看>>
mybatis--Mapper 常见报错总结(持续总结)
查看>>