Oracle中获取会话信息的两个函数分享

1、 USERENV(OPTION) 
  返回当前的会话信息. 
  OPTION='ISDBA'若当前是DBA角色,则为TRUE,否则FALSE. 
  OPTION='LANGUAGE'返回数据库的字符集. 
  OPTION='SESSIONID'为当前会话标识符. 
  OPTION='ENTRYID'返回可审计的会话标识符. 
  OPTION='LANG'返回会话语言名称的ISO简记. 
  OPTION='INSTANCE'返回当前的实例. 
    OPTION='terminal'返回当前计算机名 
  SELECT USERENV('LANGUAGE') FROM DUAL;
2、sys_context


代码如下:

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

3.与系统视图v$session组合使用可以获得更多信息(客户端所使用的应用程序等)


代码如下:

select *
  from v$session se,
       (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) base
 where se.AUDSID = base.sessionid;

(0)

相关推荐

  • Oracle数据库处理多媒体信息

    正在看的ORACLE教程是:Oracle数据库处理多媒体信息.引文: 长期以来,多媒体信息在计算机中都是以文件形式存放,由操作系统管理的,但是随着计算机网络,分布式计算的发展,对多媒体信息进行高效的管理,存取,查询已经成了一种迫切需求.而关系数据库却有着强大的数据管理能力.两方面结合,多媒体数据库由此应运而生.本文将就Oracle对多媒体信息进行处理的方式,工具,特色以及一些基本原理做一个综述. 但是我们不能不遗憾的看到,现有数据库对一些多媒体数据所特有的操作能力还是很有限的.针对多媒体数据库的

  • VMware中linux环境下oracle安装图文教程(二)ORACLE 10.2.05版本的升级补丁安装

    首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入Disk1.然后执行安装: $ ./runInstaller 执行脚本 # /u01/app/oracle/10.2.0/db_1/root.shRunning Oracle 10g root.sh script...The following environment variables are set as:    ORACLE_OWNER= oracle   

  • Oracle cloud control 12c的启动、关闭及获取安装信息的方法

    Oracle cloud control 12c整个安装比较复杂,光是安装路径的选择,登录密码,端口号等众多个配置不免让人眼花缭乱,目不暇接.本文描述的是安装完毕后如何获取安装时设定的各类端口号,URL以及如何启动.关闭cloud control等等,供大家参考. 有关cloud control的安装配置可以参考:Oracle Enterprise Manager Cloud Control 12c Release 3 Installation 1.当前的环境配置 复制代码 代码如下: [ora

  • Oracle Faq(Oracle的版本)

    如需转载,请注明出处,谢谢!以8.1.7.4.0为例说明:8:版本号1:新特性版本号7:维护版本号4:普通的补丁设置号码0:特殊的平台补丁设置号码 另外有关Oracle是32bit/64bit的问题,说明如下:在windows/linux系统中由于操作系统是32bit的,所以oracle肯定是32bit的:在tru64中oracle肯定是64bit的:在hpux/aix/solaris中要看具体情况了,如果是64bit的在server上启动sqlplus时会显示64bit的字样,你也可以通过se

  • Oracle客户端版本及位数(Windows系统)查看方法

    一.查看oracle客户端版本:sqlplus -v 二.查看oracle客户端版本是32bit还是64bit 方法一: Step 1:运行sqlplus /nolog命令,如果你服务器安装了多个客户端版本,那么你应该进入对应安装目录的BIN目录后,运行该命令 C:\Users\Mr.Bruce>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on 星期一 8月 8 16:06:05 2016 Copyright (c) 1982,

  • Oracle 查询表信息获取表字段及字段注释

    获取表字段: select * from user_tab_columns where Table_Name='用户表' order by column_name 获取表注释: select * from user_tab_comments where Table_Name='用户表' order by Table_Name 获取字段注释: select * from user_col_comments where Table_Name='用户表' order by column_name /*

  • Oracle 11g自动诊断信息库(Automatic Diagnostic Repository,ADR)概述

    在Oracle 11g中引入了自动诊断信息库(ADR),它提供了一个统一而且一致的机制来存储.格式化并定位所有的数据库诊断信息(易于使用的文件结构).ADR关联各种组件(比如Oracle RAC.Oracle Clusterware.OCI.Net.进程等)的错误,并自动为严重的错误生成事故和提供事故管理功能.因此,ADR可以显著减少解决事故和问题的时间. 通常在使用传统的初始化参数的时候,比如BACKGROUND_DUMP_DEST.CORE_DUMP_ DEST和USER_DUMP_DEST

  • oracle获取当前用户表、字段等详细信息SQL

    做个笔记,仅供参考 SELECT d.TABLE_NAME tbName,//表名 COALESCE(t.COMMENTS, ' ') tbDesc, //表注释 a.COLUMN_NAME columnName, //字段名 a.DATA_TYPE columnType, //字段类型 a.DATA_LENGTH width, //字段长度 a.DATA_SCALE precision,//字段小数位 decode(a.NULLABLE,'Y','0','1') notNull,//是否允许空

  • Oracle11.2.0.1如何升级到11.2.0.3 Oracle同版本升级

    Oracle数据库升级也并非简单的事,这篇文章对Oracle那点事做了较详细的介绍:Oracle数据库升级或数据迁移方法研究 我还属于Oracle的菜鸟,就不献丑介绍了. 下面我就简单总结下,Oracle同版本升级的经历:  升级数据库: 1. 先检查数据库当前版本:SELECT * FROM v$version; 2. 使用RMAN或exp 进行全库备份 [这一步非常非常重要,因升级到数据部分时,虚拟机没空间了,导致VM崩溃,升级失败.orcl库也挂了,不得不从另一台Oracle上创建了一个O

  • oracle 日期函数集合(集中版本)第1/2页

    在oracle数据库的开发中,常因为时间的问题大费周章,所以特地将ORACLE数据的日期函数收藏致此.乃供他日所查也. add_months(d,n) 日期d加n个月 last_day(d) 包含d的月?的最后一天的日期 new_time(d,a,b) a?区的日期和??d在b?区的日期和?? next_day(d,day) 比日期d?,由day指定的周几的日期 sysdate 当前的系?日期和?? greatest(d1,d2,...dn) ?出的日期列表中最后的日期 least(d1,k2,

随机推荐