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

  • 相关阅读:
    《痞子衡嵌入式半月刊》 第 51 期
    痞子衡嵌入式:IAR环境下无法直接下载调试i.MXRT分散链接工程的解决方案(宏文件.mac+双Flashloader)
    《痞子衡嵌入式半月刊》 第 52 期
    消息中间件RabbitMq相关概念及原理介绍【图文并茂】
    简简单单用一下 Hbase
    WxJava for Solon 咱也不知道为啥要写
    Solon 1.6.34 发布,更现代感的应用开发框架
    Water 2.5.6 发布,一站式服务治理平台
    Water 2.5.8 发布,一站式服务治理平台
    CODING 公开课火热报名中!
  • 原文地址:https://www.cnblogs.com/champaign/p/9468501.html
Copyright © 2020-2023  润新知