这两天在学习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,进入到编译后的包文件代码。
如上图所示,可以看到下列有出错信息,点击就能调到相应行,这样一来,你就能进行发现错误,然后解决错误。
测试代码
在存储过程中测试:
declare
begin
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方法,掌握能极大提高开发效率哦。