PL/SQL进行debug 包以及存储过程
来源:互联网 发布:如何改淘宝店铺名字 编辑:程序博客网 时间:2024/06/03 19:16
这两天在学习PL/SQL,虽然和MySQL大部分sql语句相似,并且存储过程等相关写法也很相似。但是毕竟是新接触的,难免会遇到各种初学者都会遇到的问题。本文主要讲解当执行sql脚本提示错误时,该如何去查错误以及debug技巧。提高开发效率。
包的写法以及使用
oracle里面有包(package)一说,其意思就相当于Java里面的类,package里面可以定义全局变量,存储过程(procedure),方法(function)等等。
下面看一个简单例子:
简单例子
在oracle中,一个package,包括两部分,包头,以及包体(body),并且两部分需要分开编译(compile),否则会报错。
包头:
create or replace package anLA7856 is procedure m_test;end;
包体(body):
create or replace package body anLA7856 is procedure m_test is world varchar2(20):='hello oracle!'; begin dbms_output.put_line(world); end;end;
以上内容便是包头和包体,你可以把这两部分写到同一个sql文件中,但是要分开编译。先编译包头,再编译包体。
通常,我们是先选择包头代码,然后执行,再选择包体代码,再执行,但是呢,再PL/SQL中,直接这样,不管成功或者失败,都是不会报错的,你需要打开右侧的Objects栏,去查看Packages和Package bodies,这样如果有错误,会在相应的包上有把×。
如上图所示,anla7856包头包体都是对的,而p_stu两个都有把×。
此时,如果有×,你就需要右击包名,选择Edit,进入到编译后的包文件代码。
如上图所示,可以看到下列有出错信息,点击就能调到相应行,这样一来,你就能进行发现错误,然后解决错误。
测试代码
在存储过程中测试:
declarebegin anLA7856.m_test();end;
结果:
debug方法
下面进入重点,如何debug?
首先在刚刚的Object栏目下,选择一个没有编译错误的包体,右击->Edit
然后,在随意一行下的左侧行头单击打个断点
下一步,在Object那个页面,右击->Add debug information;
再下一步,新建一个test window,这一步你可以选择一个待测试的方法或者存储过程,右击->test,也能通过file->new test window来实现。,比如上图,我右击mquery,然后选择test。
接着,如果你的存储过程或方法有传入参数,则可以再下图value位置输入参数:
然后按下F9启动运行test脚本,接下来你可以进行下一步,或者进入方法,调到下个断点等等,就和其他集成开发环境debug方法一致了。
如何查看变量值?
法一:把鼠标放在该变量上面即可
法二:在下图位置将变量名称输入,value值就会自动更新:
调试存储过程等
调试存储过程以及其他代码也都相似,在test windows里面开始调试即可。
以上就是PL/SQL里面的debug方法,掌握能极大提高开发效率哦。
- PL/SQL进行debug 包以及存储过程
- pl sql developer中如何调试存储过程以及调试包中创建的存储过程
- --pl/sql包,游标,存储过程,块
- PL/SQL 基础---函数、存储过程、包
- oracle pl/sql存储过程的调试(debug)
- Java,PL/SQL调用 ORACLE存储函数以及存储过程
- pl/sql 存储过程
- PL/SQL --> 存储过程
- PL/SQL存储过程
- PL/SQL存储过程
- Pl/sql 存储过程
- PL/SQL --> 存储过程
- PL/SQL 存储过程调试不能进行单步问题
- Oracle PL/SQL存储过程,函数,包,触发器的使用
- oracle中pl/sql编程---存储过程,函数,触发器,包
- Orcale PL/SQL 函数,存储过程,包的入门编程
- Oracle PL/SQL存储过程,函数,包,触发器的使用
- pl/sql编程(四)存储过程、包
- urllib与requests的对比
- 201609-3炉石传说
- 小发包小程序系统开发分析
- Ubuntu下apt-get与pip安装命令的区别
- Learning R---randomForest
- PL/SQL进行debug 包以及存储过程
- C# 如何在PDF文档中根据关键字查找文本并给文本设置背景颜色
- Salesforce如何使用标准批准过程实现自动审批
- Java自定义链表
- 理解机器学习中的偏差与方差
- SQLite的日期时间的存储
- 虚拟机CentOS7 不能上网问题解决,亲测有效
- highcharts柱状图
- BZOJ 4808: 马【二分图】【最大独立集】