• PL/Sql Dev 调试Oracle存储过程、触发器、函数


     我们要走的路,有着太多的不确定,他人的一句劝诫,自己的一个闪念,偶尔的得与失,都时刻在改变着我们命运的走向。世事难以预料,遇事无须太执,谁都无法带走什么,又何必纠结于某一人、某一时、某一事。只有看开了,想通了,才能随缘、随性、随心而为,不急不躁,不悲不欢,不咸不淡。

    本处以调试函数为例,其他的调试与此相同
    1.调试位置

      通常情况下,要在pl/sql Dev中调试程序有两个地方:
      1).新建->测试窗口:

      
      2).在要调试的程序上点击右键->测试

      

    2.调试过程

      1).通过调试位置进入测试窗口,如下图:

      
         其中:点击1位置(或者按F9)进入调试器,2位置显示的是程序所声明的输入输出参数,如果是输入参数,需要在此处填入相应的输入值,输出参数会在执行调试完后显示。
      2).按F9进入开始调制器,如图所示:

         
         其中:1----中断调试,2----单步调试,简单点就是一步一步的执行;绿色的箭头表示全部运行完这个程序,如果有断点设置,也可以跳入到下一个断点。
     
    3).单击单步调试,进入函数,如图

      
         在此,可以尝试单步调试,一步一步运行程序
     4).设置断点
    ,如图
      
    在文本区域最左侧的边框进行左键单击,如果有行号显示,也就是行号所在的位置,如图:

      
         点击绿色的箭头,可以直接运行到设置断点处
     5).
    对变量进行监控,如图

      
         1位置为监控窗口,这个窗口可以把你要监视的变量进行显示,你把你需要监视的变量复制到这个窗口就可以了,也可以在变量上单击右键->添加变量到监视器(位置2)。
        继续单步执行,可以看到监控变量(位置3)值的变化。

    3.权限问题(ORA-0131)

     1)调试程序时,报错为ORA-0131:Insufficient privileges,如图:

      
         原因是用户权限不够,是缺失  DEBUG CONNECT SESSION 系统权限所致
     2)解决办法:以SYS用户登录数据库,执行赋权操作:

    1 SQL> grant  DEBUG CONNECT SESSION to user_name;

       注明:1.有网友指出还需赋予DEBUG ANY PROCEDURE的权限,经测试,该权限可不用赋予!
            2.可以从数据字典session_privs表查看该权限相关信息(需要以user_name登录):

    复制代码
     1 SQL>conn scott/tiger;
     2 SQL> select * from session_privs;
     3 PRIVILEGE
     4 ----------------------------------------
     5 CREATE SESSION
     6 UNLIMITED TABLESPACE
     7 CREATE TABLE
     8 CREATE CLUSTER
     9 CREATE SEQUENCE
    10 CREATE PROCEDURE
    11 CREATE TRIGGER
    12 CREATE TYPE
    13 CREATE OPERATOR
    14 CREATE INDEXTYPE
    15 DEBUG CONNECT SESSION
    16 DEBUG ANY PROCEDURE
    17 12 rows selected
    复制代码
  • 相关阅读:
    第一台虚拟机联网
    情话
    03-Linux的shell命令 .doc
    Linux系统目录结构介绍
    href 里面 链接前面加/与不加的区别?(绝对路径与相对路径)
    本地仓库关联远程仓库,从远程仓库克隆代码
    HTml <meta>标签的使用(重要)
    JS中 submit提交与Form表单里的onsubmit的调用问题?
    JS中 confirm()方法的使用?
    表单数据校检方法 onsubmit()的使用?
  • 原文地址:https://www.cnblogs.com/weixing/p/2626623.html
Copyright © 2020-2023  润新知