INITIALIZE 函数用于初始化目标会话以进行调试。

语法

  1. DBMS_DEBUG.INITIALIZE (
  2. debug_session_id IN VARCHAR2 := NULL,
  3. diagnostics IN BINARY_INTEGER := 0)
  4. RETURN VARCHAR2;

参数解释

参数

解释

debug_session_id

会话 ID 的名称。如果为 NULL,则生成唯一的 ID。

diagnostics

指示是否将诊断输出转储到跟踪文件:

  • 0:表示无诊断,为默认值

  • 1:表示打印诊断

说明

仅支持默认参数,输入非默认参数会报错。

返回值

新注册的调试会话 ID(DebugID)。

使用说明

  • 只有在调用者或指定的调试角色具有调试连接会话 DEBUG CONNECT SESSION权限时,对

    DBMS_DEBUG 的调用才会成功,否则,将会报错。如果指定了调试角色但密码不匹配,或者调用用户未被授予该角色,或者该角色已启用应用程序且此调用不是来自角色启用系统包,则也可能出现其他异常。

  • CREATE ANY PROCEDURE权限不影响例程通过调试器的可见性。为每个对象引入了一个DEBUG 权限,并带有相应的 DEBUG ANY PROCEDURE变量,可用于查看登录会话用户以外的用户所拥有的例程。
  • 调试角色的身份验证和调试连接会话DEBUG CONNECT SESSION权限的检查将由此例程的调用方完成。如果调用者是定义者的权限例程或已从某个例程调用,则仅授予定义用户、调试角色或 PUBLIC的权限将用于检查调试连接会话 DEBUG CONNECT SESSION。如果此调用来自定义者的权限例程,则调试角色(如果指定)必须是已授予该定义者的角色,但也不必授予会话登录用户,也不必在调用时在调用会话中启用。

  • 调试器在进行此调用后对单个过程的调试权限所做的检查将由会话的登录用户完成,即在进行此调用时在会话级别启用的角色(即使这些角色在调用的定义者权限环境中不可用),以及调试角色。