网站首页 > 技术文章 正文
概述
虽然现在存储过程相对比较少用了,但是平时接触不可避免的要跟存储过程打交道,当需要自己写的时候总会碰到这或那的错误,这个时候一般要怎么调试呢?
PL/SQL调试
PL/SQL中提供了【调试存储过程】的功能,可以完成存储过程的预编译与测试。
- 点击要调试的存储过程,右键选择TEST
- 如果需要查看变量,当然调试都需要。在右键菜单中选择Add debug information.
- start debugger(F9)开始我们的测试,Run(Ctrl+R)
- 随时在varible List中输入我们想查看的变量
其它:
Step into(Ctrl+N):单步调试,进入下一步
Step over(Ctrl+O):结束该语句
Step out(Ctrl+T):跳出该过程
Run to next exception:进入下一个断点Breakpoint
Toggle Breakpoint设置断点:光标指向一行,Ctrl+B;或鼠标点中该行的行号边缘
实验--调试存储过程
1、在要调试的过程上单击 test ,如下图所示:
2、单击“Test”后,PL\SQL会打开调试界面,图中位置1的按钮就是开始调试的按钮,在调试之前要填写存过的参数,位置2就是填写参数的地方,如果有多个参数,会有多行参数框,按参数名填写相应的参数即可。
3、填写完参数,单击开始调试按钮后,调试的界面会发生一些变化。图中位置1的变化,说明存过已经处于执行状态,别人不能再编译或者执行。位置2的按钮就是执行按钮,单击这个按钮存过会执行完成或者遇到bug跳出,否则是不会停下来的,调试时不会用这个按钮的。位置3的按钮才是关键——单步执行,就是让代码一行一行的执行,位置4的按钮是跳出单步执行,等待下一个指令。
4、单击“单步执行”,存过开始单步执行。界面中每一次执行的代码会高亮显示(图中位置1),如果想要看某个变量具体的值,就在位置2的地方输入该变量名,然后变量的值会显示在位置3的地方。
5、调试的时候,每一次单步执行的时候要记一下执行代码的行数,图中位置3的数字就是当前执行代码的行数,就是第几行。如果过程单步执行到某行后,再单步执行的时候,存过就退出,那么错误就在该行的下一行。
6、代码执行到24行,在往下执行时,直接转到exception的地方,也就是异常处理的部分。
7、这说明我们代码中的错误在24和25行上,我们打开存过,浏览到24行和25行附近,发现25行和24行使用了两个变量,记住那两个变量。重新开始调试过程。
8、单步的执行时候把刚才那两个变量名填写到变量查看框,一边观察变量值变化,一边单步执行,执行到24行的时候,发现一个变量已经有值了,而另一个变量的值为null。错误原因明朗了吧?就是变量没有赋值或者初始话,给该变量赋值后存过就不报错了。
看完一定要去实践下,几分钟时间就可以掌握了。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~
猜你喜欢
- 2024-10-20 图解oracle数据库SQL的各个连接方式:inner join、left join等
- 2024-10-20 一文看懂oracle三大类型与隐式数据类型转换
- 2024-10-20 oracle学习随笔一(索引) oracle索引怎么使用
- 2024-10-20 Oracle解析复杂json的方法 oracle处理json格式数据
- 2024-10-20 oracle 各种报告收集方法 oracle收集表信息
- 2024-10-20 详解oracle RMAN 用法:连接方式+基本指令
- 2024-10-20 Python 操作Oracle数据库常用的方法和工具
- 2024-10-20 数据库程序在线访问方式和 ORM 方式的优缺点
- 2024-10-20 关于数据库oracle认证方式 oracle数据库管理员认证
- 2024-10-20 详解Oracle并行模式--概念、机制、并行设置、并行度
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)