PL/SQL如何调试Oracle存储过程
from:http://jingyan.baidu.com/article/3a2f7c2e144d2826aed61167.html
调试过程对找到一个存过的bug或错误是非常重要的,Oracle作为一款强大的商业数据库,其上面的存过少则10几行,多则上千行,免不了bug的存在,存过上千行的话,找bug也很费力,通过调试可以大大减轻这种负担。
工具/原料
- PL\SQL
- Oracle
方法/步骤
首先在PL/SQL的左侧资源栏中展开Procedures项(图中位置1),然后再其上面的搜索框中(图中位置2)输入存过名称的关键词,按回车键搜索要调试的存过,不停的回车,直到找到想要调试的存过。

找到想要调试的存过,左键单击选中该存过(图中位置1),然后右键单击该存过,从弹出菜单中选择“Test”项(图中位置2)。

单击“Test”后,PL\SQL会打开调试界面,图中位置1的按钮就是开始调试的按钮,在调试之前要填写存过的参数,位置2就是填写参数的地方,如果有多个参数,会有多行参数框,按参数名填写相应的参数即可。

填写完参数,单击开始调试按钮后,调试的界面会发生一些变化。图中位置1的变化,说明存过已经处于执行状态,别人不能再编译或者执行。位置2的按钮就是执行按钮,单击这个按钮存过会执行完成或者遇到bug跳出,否则是不会停下来的,调试时不会用这个按钮的。位置3的按钮才是关键——单步执行,就是让代码一行一行的执行,位置4的按钮是跳出单步执行,等待下一个指令。

单击“单步执行”,存过开始单步执行。界面中每一次执行的代码会高亮显示(图中位置1),如果想要看某个变量具体的值,就在位置2的地方输入该变量名,然后变量的值会显示在位置3的地方。

调试的时候,每一次单步执行的时候要记一下执行代码的行数,图中位置3的数字就是当前执行代码的行数,就是第几行。如果过程单步执行到某行后,再单步执行的时候,存过就退出,那么错误就在该行的下一行。

代码执行到24行,在往下执行时,直接转到exception的地方,也就是异常处理的部分。

这说明我们代码中的错误在24和25行上,我们打开存过,浏览到24行和25行附近,发现25行和24行使用了两个变量,记住那两个变量。重新开始调试过程。

单步的执行时候把刚才那两个变量名填写到变量查看框,一边观察变量值变化,一边单步执行,执行到24行的时候,发现一个变量已经有值了,而另一个变量的值为null。错误原因明朗了吧?就是变量没有赋值或者初始话,给该变量赋值后存过就不报错了。

PL/SQL如何调试Oracle存储过程的更多相关文章
- 在PL/SQL中调用Oracle存储过程
存储过程 1 什么是存储过程? 用于在数据库中完成特定的操作或者任务.是一个PLSQL程序块,可以永久的保存在数据库中以供其他程序调用. 2 存储过程的参数模式 存储过程的参数特性: IN类型的参数 ...
- 【PL/SQL系列】Oracle存储过程使用动态SQL
Oracle存储过程相信大家都比较了解,下面就为您介绍Oracle存储过程使用动态SQL的方法,希望对您能够有所帮助. CREATE OR REPLACE PROCEDURE P_STAT_SCORE ...
- 使用oracle 的 PL/Sql 定时执行一个存储过程
CSDN日报20170322--<关于软件研发的一些体会总结> 同步博客至 CSDN ,让更多开发者看到你的文章 看微博技术大咖解析互联网应用架构实战 使用oracle 的 PL/Sql ...
- 不安装Oracle客户端使用PL/SQL连接服务器端Oracle
从10G开始,Oracle 提供了一个较为轻量级的客户包,叫做Instant Client Package. 将它安装好后,就不用再安装庞大的Oracle客户端,可以直接通过使用PL/SQL连接服务器 ...
- PL/SQL Developer 连接Oracle数据库详细配置方法
PL/SQL Developer 连接Oracle数据库详细配置方法 近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server).本文现对监听配置作一简单介绍,给出 ...
- 如何配置pl/sql 连接远程oracle服务器
在下边的两种情况下,如何配置pl/sql 连接远程oracle服务器 1)在客户端不装oracle 客户端也不装服务器,能否配置pl/sql 连接远程oracle服务器,如何配置,请给出详细的文档说明 ...
- 简单的PL/SQl链接远程ORACLE数据库方法
简单的PL/SQl链接远程ORACLE数据库方法 PLSQL Developer新手使用教程 pasting
- Learn How To Attach PL/SQL Library In Oracle Forms
To attach a PL/SQL library in the Oracle Forms follow the following steps:1. Click on Attached Libra ...
- C#(在WeBAPI)获取Oracle(在PL/SQL)游标类型的存储过程(用到了RefCursor)
需求:WebAPI服务端,通过Oracle数据库的存储过程,获取数据. 在PL/SQL 建立存储过程:(先来最简单的,就是把整个表都查出来) create or replace procedure S ...
随机推荐
- 使用vuex保存singer每个歌星的基本信息
1.建src/store文件夹,建立以下文件来存储歌星信息 2.state.js const state = { singer:{} } export default state 2.mutation ...
- 替换python字典中的key值
- gvim配置到命令行可以使用
下载安装gvim后,把gvim的安装目录添加到环境变量.
- JavaScript高级 面向对象(2)--调试工具的使用:音乐循环播放
说明(2017.3.29): 1. 在调试工具console里输入var v = document.createElement("audio"),然后再source的watch里输 ...
- R ggplot2 线性回归
摘自 http://f.dataguru.cn/thread-278300-1-1.html library(ggplot2) x=1:10y=rnorm(10)a=data.frame(x= x, ...
- rhel7的xfs与Oracle database
在rhel7下,安装oracle database时,能够选择xfs文件,例如以下: Requirements for Installing Oracle Database 12.1on RHEL7 ...
- spring 加载bean过程源码简易解剖(转载)
这一篇主要是讲用载入bean的过程.其实就是IOC.低调 低调.. 我把重要的都挑出来了.一步步往下看就明白spring载入bean.xml里面bean的原理 . 感觉像候杰的 MFC深入浅出,哈哈. ...
- hdu3065 病毒侵袭持续中 AC自动机入门题 N(N <= 1000)个长度不大于50的模式串(保证所有的模式串都不相同), 一个长度不大于2000000的待匹配串,求模式串在待匹配串中的出现次数。
/** 题目:hdu3065 病毒侵袭持续中 链接:http://acm.hdu.edu.cn/showproblem.php?pid=3065 题意:N(N <= 1000)个长度不大于50的 ...
- 【Hibernate步步为营】--核心对象+持久对象全析(二)
上篇文章讨论了Hibernate的核心对象,在开发过程中经经常使用到的有JTA.SessionFactory.Session.JDBC,当中SessionFactory可以看做数据库的镜像,使用它可以 ...
- java-javaweb_URL重写
Java WEB实现URL重写的优缺点及如何实现: http://blog.csdn.net/cselmu9/article/details/8062033 urlrewrite 地址重写: http ...