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表示出错后使用原有资源使用组。

转载于:https://www.cnblogs.com/champaign/p/9468501.html

六.dbms_session(提供了使用PL/SQL实现ALTER SESSION命令)相关推荐

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

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

  2. PL/SQL 基础( 上 )

    预备 ( PL/SQL 好处 ) Integration : 集成度高 ( server 和 application 中都有 , 例如 : Oracle Developer ) Improved pe ...

  3. 关于PL/SQL我写了一份从0到1的入门教程

    PL/SQL 什么是PL/SQL ​ 许多时候我们会利用结构化查询语言(SQL)来访问和操作关系型数据库.这种语言的特点就是非过程化.也就是说使用的时候不用指明执行的具体方法和途径,即不用关注任何的实 ...

  4. PL/SQL 基础知识

    PL/SQL 声明部分 执行部分 异常处理部分 PL/SQL块的结构 DECLARE /*声明部分:在此处声明PL/SQL 用到的变量,类型及游标,以及局部的存储过程和函数*/ BEGIN/*执行部分 ...

  5. 存储过程和函数——PL/SQL教程(七)

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

  6. oracle导入dmp报无效的sql,oracle施用pl/sql导入数据库备份文件dmp导入失败原因

    oracle使用pl/sql导入数据库备份文件dmp导入失败原因 利用PL/SQL导入数据库备份失败: Tools→Import →Tables Import Executable选择导入工具路径 D ...

  7. PL/SQL不能导入备份文件如何解决

    利用PL/SQL导入数据库备份失败: Tools-Import Tables Import Executable选择导入工具路径 D:\Program\oracle\product\10.2.0\db ...

  8. pl/sql中建用户

    在pl/sql中建用户 新建命令窗口: create user nim identified by password; grant dba to nim; grant all privileges   ...

  9. 【PL/SQL】Excel批量往数据库中插入数据:

    将要插入的数据按顺序(与select后的字段顺序一致)写到Excel表格中,然后再PL/SQL中输入如下命令: select row1,row2,row3,..., from tableName fo ...

最新文章

  1. linux 命令详解 二十二
  2. nginx反代理服务器
  3. 如何测试大端存储和小端存储
  4. Invalid bound statement (not found)
  5. pySpark环境搭建
  6. 蜘蛛搜索引擎_SEO:搜索引擎蜘蛛要引导,不能佛系优化
  7. 【MySQL】基于MySQL的SQL增删改查实战演练
  8. 面试了3个‘85前’的嵌入式软件工程师
  9. 联发科发布天玑1200芯片:6nm工艺 采用1+3+4三丛架构设计
  10. get方法报空指针_C++基础教程之指针拷贝详解
  11. 在Android 6.0 Marshmallow(API 23)上弃用了getColor(int id)
  12. python航空订票系统_航空订票系统
  13. 借助谷歌浏览器下载保存微信公众号中的视频
  14. DNS请求报文和响应报文解析
  15. 内网渗透-WindowsLinux痕迹清除
  16. 用C程序编简易双人五子棋
  17. 如何实现验证码输入正确与否的判断?
  18. Spark 3.0 - 6.ML 自定义 Transformer 踩坑大全
  19. ‘gbk‘ codec can‘t decode byte 0xa4 in position 16433: illegal multibyte sequence
  20. javaweb mysql 连接池 c3p0 配置_javaWeb_JDBC_c3p0数据库连接池

热门文章

  1. android studio lambda插件,Android Studio Lambda插件(gradle-retrolambda)安装
  2. 【Python学习】 - sklearn学习 - 评估指标precision_score的参数说明
  3. 【HDU - 5875】Function(线段树,区间第一个小于某个数的数 或 RMQ二分)
  4. 【牛客 - 551C】CSL 的密码(后缀数组,后缀自动机,随机算法)
  5. 【CodeForces - 340D】Bubble Sort Graph (思维,nlogn最长上升子序列类问题)
  6. JDK 7,jdk1.7 安装及配置
  7. C++ new和malloc的区别
  8. addr2line 和 tombstone问题分析
  9. c++基础学习(05)--(指针,引用)
  10. python 求子字符串_(6)KMP算法(求子串的位置)______字符串的匹配