如何在PLSQL中调试PACKAGE包中的FUNCTION函数
来源:互联网 发布:nba勇士队格林数据 编辑:程序博客网 时间:2024/06/13 17:46
图解如何在PLSQL中调试PACKAGE包中的FUNCTION函数
Oracle中的packages包是一组包含procedures存储过程、functions函数和游标等元素的组合。相比Sybase数据库的SQL Advantage工具,Oracle数据库的管理工具——PLSQL在调试存储过程还是方便。
1 Oracle数据库中的packages包、functions函数和procedures存储过程的关系
Oracle数据库中的packages包类似于Java中的packages的概念,在一个packages包中不允许定义多个相同的functions函数或者procedures存储过程,但允许重载functions方法和procedures过程。packages包是可以被引用的,例如在C程序中调用packages包中的functions方法:
sprintf( SqlStr, "select pkg_Name.Func_Name('%s', '%s', '%d') as RESULT from dual ", sPara1, sPara2, sPara3 );
2 在PLSQL中调试packages包中functions函数
下面是自己在PL/SQL Developer Version 8.0中调试一个packages包中functions函数的演示过程:
2.1 在PLSQL中找到需要调试的packages包
如下图所示,展开PLSQL左侧菜单栏的Packages
收缩项,可以看到下面的Packages包名,这里只有一个名为PKG_COMM
的包(包括包头和包体Package bodies)。
2.2 切换到“调试”模式
在Packages包名上,右键选择添加调试信息
,如下图所示:
2.3 双击需要调试的Packages包
查看packages包中具体的内容:鼠标双击PLSQL左侧的packages包名(PKG_COMM),可以看到它包含的Functions函数Get_counter
和函数的3个形参变量(Pi_cnttype、Pi_Cntobj和Pi_Nowdate)。
2.4 添加测试断点(BreakPoint)
鼠标双击这个函数名Get_counter
后,会在右侧显示该函数的具体实现代码。接着在需要添加断点的地方,用鼠标点击代码左侧的行号位置就行了。如下图所示,红色的小圆圈就是添加BreakPoint。
2.5 在functions函数上右键选择测试按钮
完成上面的工作后,就可以正式进入Debug模式了。在函数名Get_counter
选项上鼠标右键选择测试
菜单,进入Package调试模式。
2.6 把实参变量的值传给functions函数的形参变量
在2.5步骤中,会打开如下图的初始调试界面。这时,我们看到的是包头的实现代码(每个Package包都是从包头声明开始的
)。可以先给函数Get_counter
的3个形参变量赋值,这点和C/C#/JAVA等高级语言的调试是一样的。
2.7 调试工具栏的使用
如下图所示,PLSQL的调试工具栏
上的按钮依次是:开始调试器(F9)
,运行(Ctrl+R)
,单步进入(Ctrl+N)
,单步跳过(Ctrl+O)
,单步退出(Ctrl+T)
,运行到下一个异常
。它们的功能和visual studio、eclipse等开发语言的IDE工具类似。在点击测试工具栏上的第一个按钮开始调试器(F9)
,就开始Debug了。
2.8 添加监控变量
在packages包函数的调试过程中,我们可以像visual studio、eclipse等IDE那样,手动添加一些我们需要的监控变量。同时,在调试过程中我们还可以继续用2.4步骤中的方法添加调试断点。
2.9 调试完毕,得到结果
多次点击单步进入(Ctrl+N)
,直到该functions函数运行到结束,最后会在界面自动输出该函数的返回值。
- 如何在PLSQL中调试PACKAGE包中的FUNCTION函数
- Oracle如何调试package、procedures、Function?
- oracle plsql 包 package
- 在PLSQL工具中如何调试oracle的触发器
- 在 PLSQL 中调试 存储过程和存储函数
- 如何在Delphi中调用Oracle 的(包)package
- [原创]如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- 如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- 如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- 【PLSQL】package包的使用
- PLSQL中过程、函数、包、触发器
- 如何在Oracle 函数(Function)中使用like关键字
- java中如何创建包(package)
- Oracle中的Package/Procedure/Function存放在哪里?
- 如何在Swift3中获取Json包的内容(unwrap Json package)
- 如何在Swift3中获取Json包的内容(unwrap Json package)
- 如何在Swift3中获取Json包的内容(unwrap Json package)
- 如何调试plsql代码
- 一个按钮提交两个Ajax请求
- Android学习路线指南
- ubuntu下权限设置问题
- SVN服务器介绍
- 使用htps进行,Get请求和post请求
- 如何在PLSQL中调试PACKAGE包中的FUNCTION函数
- Java迭代器Iterator
- 谈谈python的GIL、多线程、多进程
- iOS 禁止横屏的解决方案
- navigator.userAgent.indexOf来判断浏览器类型
- hdoj5536Chip Factory
- Java中equals和==的区别
- jquery里的val()给对象重新复制
- 鼠标滚轮控制页面滚动(山寨苹果官网iPhone5s的滚屏动画实例)