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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程官方教程

多线程编程指南Sun Microsystems, Inc.4150 Network CircleSanta Clara, CA95054U.S.A.文件号码819–7051–102006 年10 月版权所有2005 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA95054 U.S.A. 保留所有权利。本文档及其相关产品的使用、复制、分发和反编译…

iOS面试题(三)

1、Objective-C 中创建线程的方法是什么&#xff1f;如果在主线程中执行代码&#xff0c;方法是什么&#xff1f;如果想延时执行代码、方法又是什么&#xff1f; 线程创建有三种方法&#xff1a;使用NSThread创建、使用GCD的dispatch、使用子类化的NSOperation,然后将其加入NSO…

Oracle中修改遇到“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Oracle 11g中想修改表名&#xff1a; rename ASSETPORJECT to ASSETPROJECT; 结果提示&#xff1a;ORA-00054: 资源正忙, 但指定以 NOWA…

NWCD

1.java jdk和jre 求和算法 时间复杂度和空间复杂度 restful风格 微服务 maven中央仓库 项目依赖jar包&#xff0c;换平台运行 同步和异步 设计模式–代理模式 2.linux 僵尸进程和孤儿进程 如何消除僵尸进程 僵尸进程能被kill调吗 磁盘性能分析iostat top free fdisk swap中a…

解决设置了background-size: cover; 但是图片在ios下显示不完整的问题

设置 background-size: 100% 99.9%&#xff1b; 转载于:https://www.cnblogs.com/kugeliu/p/9469207.html

Python学习之路20-数据模型

《流畅的Python》笔记。本篇是Python进阶篇的开始。本篇主要是对Python特殊方法的概述。1. 前言 数据模型其实是对Python框架的描述&#xff0c;它规范了这门语言自身构件模块的接口&#xff0c;这些模块包括但不限于序列、迭代器、函数、类和上下文管理器。不管在哪种框架下写…

String s1==s2面试题

这个程序运行的结果是什么&#xff1f;class StringTest1{public static void main(String[] args) {String s1"equal";String s2 "equal";if(s1s2){System.out.println("s1s2");}else{ System.out.println("s1!s2");} }} 输出 s1…

Vector:动态数组的使用和说明

摘自百度百科&#xff1a; 1. Vector 类在 java 中可以实现自动增长的对象数组; 创建了一个向量类的对象后&#xff0c;可以往其中随意地插入不同的类的对象&#xff0c;既不需顾及类型也不需预先选定向量的容量&#xff0c;并可方便地进行查找。对于预先不知或不愿预先定义数组…

Spring AOP 代理模式

记录几篇关于AOP & 代理模式 的博客&#xff0c;写的非常好&#xff0c;感谢作者分享&#xff01; Java中的代理模式——静态代理以及分析静态代理的缺点 Java中动态代理的两种方式JDK动态代理和cglib动态代理以及区别 Spring中的AOP以及切入点表达式和各种通知 Spring…

mongodb 多表查询

今天有一个业务涉及到mongodb的多表查询&#xff0c;大体记录下语句结构 db.table_a.aggregate([ {$lookup:{from:"table_b",localField:"userid",foreignField:"userid",as:"organization_doc"}}, //联表B{ $project:{ _id:1, card…

跨平台多线程编程

多线程介绍POSIX 1003.1-2001 定义了多线程编程的标准API。这个API就是广为人知的pthreads。它的目的在于为跨平台编写多线程程序提供便利。多线程程序的编写本文介绍了Linux 和 WIN32 平台下的多线程程序的编写方法Linux 系统对 pthreads 提供了良好的支持。一般地安装完Linux…

方法重载和方法重写

方法重载 &#xff08;1&#xff09; 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在&#xff0c;具有不同的参数个数/类型。 重载Overloading是一个类中多态性的一种表现。 &#xff08;2&#xff09; Java的方法重载&#xff0c;就是在类中可以…

shell获取/etc/passwd中的用户名和id

核心思想&#xff1a;cut 关键词&#xff1a;head tail cut #!/bin/bash # get the information about /etc/passwd PATH/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATHfile"/etc/passwd" linewc -l $file | cut -d" "…

进度条控制(Windows 公共进度栏控件的功能)

MSDN&#xff1a;https://msdn.microsoft.com/zh-cn/library/sys15k39.aspx 构造 CProgressCtrl 对象&#xff1a;  CProgressCtrl(); 创建进度栏控件&#xff1a;  virtual BOOL Create( DWORD dwStyle(风格), const RECT& rect(位置大小), CWnd* pParentWnd(父窗体),…

本地浏览器缓存sessionStorage(临时存储) localStorage(长期存储)的使用

对浏览器来说&#xff0c;使用 Web Storage 存储键值对比存储 Cookie 方式更直观&#xff0c;而且容量更大&#xff0c;它包含两种&#xff1a;localStorage 和 sessionStorage sessionStorage&#xff08;临时存储&#xff09; &#xff1a;为每一个数据源维持一个存储区域&am…

HTML5的历史

HTML5和WHATWG[1] 2004年Opera的IanHickson&#xff08;现在Google工作&#xff09;发起的HTML新标签扩展以适应新的web应用&#xff0c;该发起遭到W3C的拒绝&#xff0c;而W3C凭空杜撰的作风引起了部分人的不满&#xff0c;来自Opera,Apple&#xff0c;以及Mozilla的代表开始…

B-TREE、B+TREE、数据库索引

推荐文章&#xff1a; B-Tree详解 SQL夯实基础&#xff08;五&#xff09;&#xff1a;索引的数据结构 MySQL B树索引和哈希索引的区别 感谢作者分享&#xff01;

《重构-改善既有代码的设计》-第1例:租赁影片(1)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 买了《重构 - 改善既有代码的设计 》一书&#xff0c;一直没有好好看&#xff0c;大致过了下也觉得只是有点点印象而已&#xff0c;最后…

java类加public和不加public

加public表示全局类&#xff0c;该类可以import到任何类内。不加public默认为保留类&#xff0c;只能被同一个包内的其他类引用。