oracle包体怎么调试 oracle包的调用

oracle plsql怎么调试存储过程1、首先是编写存储过程,编译无误;
2、添加debug信息 。为了能够单步跟踪存储过程,需要为其所在的包添加debug信息,右键点击需要调试的存储过程名称,在弹出菜单中选中[add debug information],这样就为包体添加了调试信息;
3、选择需要调试的存储过程名称,点击右键,在弹出菜单中 选择[Test] , 进去测试窗口,测试窗口中有为了测试该存储过程自动所产生的代码,当然你也可以自己另外加入和修改代码,自动生成的代码已经足够了 。
怎么调用oracle里的包在存储过程或函数里调用oracle包的话,首先要有执行这个包的权限;如果包属于其他的用户(不是系统包) , 调用时:用户名.包名.存储过程(参数)名或者
变量:=用户名.包名.函数(参数);因为函数有返回值 , 变量类型要跟函数返回值的类型一致 。
在command
下调用的话:exec
用户名.包名.存储过程名(参数);select
用户名.包名.函数名(参数)
from
dual;就可以了 。包属于当期用户可以不写用户名 。
Oracle 触发器调试及遇到相关问题解决今天在项目中遇到一个比较棘手的问题,需要用到触发器 。在编写触发器和调试过程中遇到下列问题,在此记录一下:
由于之前写的触发器都能正常运行,就没有涉及到触发器的调试 , 今天发现触发器没起作用,需要调试 , 竟不知道在哪儿调试 。在网上借鉴一些别人的经验(),记录一下 。在PL/SQL中 , 触发器的调试方法如下:
1,选中要调试的触发器,右击 , 然后勾选 Add debug information,只有勾选这个按钮后,调试才能进入到断点 。
2,选中触发器 , 点击 Edit,到Edit 界面,在要调试的行号前面单击,或者右键,添加断点 。
3,在菜单的新建中选择“测试窗口”,打开一个如下块,在begin和end中间添加能触发触发器的语句
4 , 按F9或者点击调试菜单中的开始菜单,进入运行调试状态(后面的红框是单步进入)
5,点击运行图标跳到触发器中断点位置
【oracle包体怎么调试 oracle包的调用】6,鼠标放到变量上可以显示变量值 。
7,如果有异常,就弹出相关异常信息 。
调试的时候发现new对象的日期格式为中文,而后面又需要yyyy-mm-dd 的格式来作为查询条件 。所以就在赋值的时候转换一下 。
在select into 给变量赋值的时候,select 查询出来的集合为空,导致报错ORA-01403,解决方案就是将这一段用begin end 包裹起来,抛出改异常的时候给变量一个默认值 。如下图:
ORACLE包体中调用另一个包体的方法包用于在逻辑上组合过程和函数oracle包体怎么调试,它由包规范和包体两部分组成
1.创建包
--创建一个包sp_package
create package sp_package is
--声明该包有一个过程和函数oracle包体怎么调试,(没有实现)
procedure update_sal(name varchar2,newsal number);
function annual_nicome(name varchar2) return number;
end;
--创建包体(用于实现已经声明oracle包体怎么调试的函数和过程)
create package body sp_package is
procedure update_sal(name varchar2,newsal number)
is
BEGIN
UPDATE emp
SETsal = newsal
WHEREename = name;
END;
function annual_income(name varchar2)
return number is
annual_salary number;
BEGIN
SELECT sal * 12Nvl(comm,0)
INTOannual_salary
FROMemp
WHEREename = name;
RETURN annual_salary;
END;
end;
--调用包中oracle包体怎么调试的内容
exec sp_package.update_sal('name',number);
关于oracle包体怎么调试和oracle包的调用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读