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方法,掌握能极大提高开发效率哦。