1、概述

作用:提供了使用PL/SQL实现ALTER SESSION命令,SET ROLE命令和其他会话信息的方法

.2、包的组成

1)、set_identifier
说明:用于设置会话的客户ID号。
语法:dbms_session.set_identifier(client_id varchar2);
其中client_id指定当前会话的应用标识符。

2)、set_context
说明:用于设置应用上下文属性
语法:
dbms_session.set_context(namespace varchar2,attribute varchar2,value varchar2);
dbms_session.set_context(namespace varchar2,attribute varchar2,value varchar2,username varchar2,client_id varchar2);
其中namespace指定应用上下文的命名空间,attribute指定应用上下文的属性,value指定属性值,username指定应用上下文的用户名属性。

3)、clear_context
说明:用于清除应用上下文的属性设置
语法:dbms_session.clear_context(namespace varchar2,client_identifier varchar2,attribute varchar2);
其中client_identifier只适用于全局上下文。

4)、clear_identifier
说明:用于删除会话的set_client_id.
语法:dbms_session.clear_identifier();

5)、set_role
说明:用于激活或禁止会话角色,与sql语句set role作用完全相同。
语法:dbms_seesion.set_role(role_cmd varchar2);
例子:在sql*plus使用该过程激活或禁止角色如下
dbms_session.set_role('DBA')
dbms_session.set_role('none')

6)、set_sql_trace
说明:用于激活或禁止当前会话的SQL跟踪,其作用与SQL语句alter session set sql_trace= 完全相同。
语法如下:dbms_session.set_sql_trace(sql_strace boolean);
其中sql_strace用于指定布尔值,true表示激活sql跟踪,false表示禁止。
例子:在sql*plus使用该过程
exec dbms_session.set_sql_trace(true);
exec dbms_session.set_sql_trace(false);

7)、set_nls
说明:用于设置NLS特征,其作用与sql语句alter session set <nls_param>=<value>完全相同。
语法:dbms_session.set_nls(param varchar2,value varchar2);
其中param指定nls参数,value指定nls参数
例子:在sql*plus使用该过程
exec dbms_seesion.set_nls('nls_date_format','''YYYY-MM-DD''');
select sysdate from dual;

8)、close_database_link
说明:用于关闭已经打开的数据库链,其作用与SQL语句alter session close datebase link<name>完全相同。
语法:dbms_session.close_database_link(dbline varchar2);
其中用于指定要关闭的数据库连接名。

9)、reset_package
说明:用于复位当前会话的所有包,并且会释放包状态。
语法:dbms_session.reset_package;

10)、modify_package_state
说明:用于修改当前会话的PL/SQL程序单元的状态
语法:dbms_session.modify_package_state(action_flags in pls_integer);
其中,action_flags指定pl/sql程序单元标记,当设置为1是,会释放plsql程序单元所占用的内存;2则会重新初始化pl/sql包。

11)、unique_session_id
说明:用于返回当前会话的惟一ID标识符
例子:select dbms_session.unique_session_id from dual;

12)、is_role_enabled
说明:用于确定当前会话是否激活了特定角色.
语法:dbms_session.is_role_enabled(rolename varchar2) return boolean;
其中rolename指定角色名。返回true表示已激活,false表示未激活。
例子:set serveroutput on
begin
if dbms_session.is_role_enabled('DBA') then
dbms_output.put_line('激活了');
else dbms_output.put_line('没激活');
end if;
end;

13)、is_session_alive
说明:用于确定特定会话是否处于活动状态.
语法:dbms_session.is_session_alive(uniqueid varchar2) return boolean;
其中uniqueid指定会话ID号,处于活动返回true,否则false。

14)、set_close_cached_open_cursors
说明:用于打开或关闭close_cached_open_cursors,其作用与alter session set close_cached_open_cursors完全相同。
语法:dbms_session.set_close_cached_open_cursors(close_cursors boolean);
其中close_cursors指定布尔值,设置为true打开,false关闭。

15)、free_unused_user_meory
说明:用于在执行了大内存操作(超过100K)之后回收未用内存
语法:dbms_session.pree_unused_user_memory;

16)、set_context
说明:设置应用上下文属性的值.
语法:dbms_session.set_context(namespare varchar2,attribute varchar2,value varchar2,username varchar2,client_id varchar2);

17)、list_context
说明:用于返回当前会话原命名空间和上下文列表
语法:
type appctxrectyp is record(namespace varchar2(30),attribute varchar2(30),value varchar2(256));
type appctxtabtyp is table of appctxrectyp index by binary_integer;
dbms_session.list_context(list out appctxtabtyp,size out number);
其中list用于取得当前会话的列表集,size用于返回列表个数。

18)、swith_current_consumer_group
说明:用于改变当前会话的资源使用组
语法:dbms_session.switch_current_consumer_group(
new_group in varchar2,old_group out varchar2,initial_group in boolean);
其中new_group指定新资源使用组;old_group指定原有资源实用组;initial_group指定布尔值,true表示出错后使用原有资源使用组。

六.dbms_session(提供了使用PL/SQL实现ALTER SESSION命令)的更多相关文章

  1. 九、dbms_ddl(提供了在PL/SQL块中执行DDL语句的方法)

    1.概述 作用:提供了在PL/SQL块中执行DDL语句的方法,并且也提供了一些DDL的特殊管理方法. 2.包的组成 1).alter_compile说明:用于重新编译过程.函数和包语法:dbms_dd ...

  2. PL/SQL存储过程编程

    PL/SQL存储过程编程 /**author huangchaobiao *Email:huangchaobiao111@163.com */ PL/SQL存储过程编程(上) 1. Oracle应用编 ...

  3. [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)

    原文:[推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) [推荐]ORACLE PL/SQL编程详解之一: PL/SQL 程序设计简介(千里之行,始于足下 ...

  4. oracle数据库之PL/SQL 块结构和组成元素

    一.PL/SQL 块 (一)PL/SQL 程序由三个块组成,即声明部分.执行部分.异常处理部分 PL/SQL 块的结构如下: 1.DECLARE /* 声明部分: 在此声明 PL/SQL 用到的变量, ...

  5. pl/sql programming 03 语言基础

    PL/SQL 块结构 最小的有意义的代码单元叫做 块(block). 一个块是一组代码, 这个块给出了执行边界, 也为变量声明和异常处理提供了作用范围, pl/sql 准许我们创建匿名块和命名块, 命 ...

  6. pl/sql 笔记之存储过程、函数、包、触发器(下)

    一.存储过程.存储函数   1.What's This? ①.ORACLE 提供可以把 PL/SQL 程序存储在数据库中,并可以在任何地方来运行它.这样就叫存储过程或函数. ②.存储过程.存储函数的唯 ...

  7. Oracle学习DaySix(PL/SQL续)

    一.游标 在 PL/SQL 程序中,对于处理多行记录的事务经常使用游标来实现.游标是一个指向上下文的句柄( handle)或指针.通过游标,PL/SQL 可以控制上下文区和处理语句时上 下文区会发生些 ...

  8. PL/SQL轻量版(四)——存储函数/存储过程与触发器

    概述 ORACLE 提供可以把 PL/SQL 程序存储在数据库中,并可以在任何地方来运行它.这样就叫存储过程或函数.过程和函数统称为 PL/SQL 子程序,他们是被命名的 PL/SQL 块,均存储在数 ...

  9. PL/SQL学习笔记_03_存储函数与存储过程

    ORACLE 提供可以把 PL/SQL 程序存储在数据库中,并可以在任何地方来运行它.这样就叫存储过程或函数. 存储函数:有返回值,创建完成后,通过select function() from dua ...

随机推荐

  1. JMeter5.0 边界提取器使用

    需求: 需要提取下图中requestNo的值,使用JMeter3.1和4.0版本,使用正则表达式提取器始终无法获取 而后使用JMeter5.0的边界提取器,不需要写复杂的正则表达式,只要填写左右边界即 ...

  2. eclipse 创建jsp报错

  3. motan rpc

    git :  帮助 文档 基本介绍 Motan是一套基于java开发的RPC框架,除了常规的点对点调用外,Motan还提供服务治理功能,包括服务节点的自动发现.摘除.高可用和负载均衡等.Motan具有 ...

  4. 解决NodeJS+Express模块的跨域访问控制问题:Access-Control-Allow-Origin

    在一个项目上想用NodeJS,在前端的js(http://localhost/xxx)中ajax访问后端RestAPI(http://localhost:3000/….)时(Chrome)报错: XM ...

  5. PHP 利用文件锁处理高并发

    利用flock()函数对文件进行加锁(排它锁),实现并发按序进行. flock(file,lock,block)有三个参数. file:已经打开的文件 lock:锁的类型 LOCK_SH:共享锁(读锁 ...

  6. 20144303 《Java程序设计》第九周学习总结

    20144303 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 一.JDBC入门: JDBC全名Java DataBase Connectivity,是java联机数据库 ...

  7. 求CRC16校验

    unsigned short DialogSerial::crc_ccitt(unsigned char *q,int len){ unsigned short ccitt_table[256] = ...

  8. 分布式缓存DistributedCache

    本文是对MR案例:Map-Join的解读. 在hadoop中,共享全局变量或全局文件的几种方法 使用Configuration的set()方法,只适合数据内容比较小的场景 将缓存文件放在HDFS上,每 ...

  9. SpringBoot 打包为Docker进行

    可以有两种方式: 1.dockerfile 2.maven docker 第一种方式:通过dockerfile打包Docker镜像 1.将dockerfile和 springboot打包的jar文件放 ...

  10. ubuntu下源码安装wget

    1.背景 ubuntu18.04 64bit 2.安装方法如下: 2.1.获取源码 curl -o wget-1.20.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1 ...