包只是作为 程序的一个载体而已,你要运行,当然是去调用它!
包里面可以包含函数、过程等,你可以开发程序时候调用包里面的这些程序!没有听说过包怎么运行的道理!
就像电视机(包)可以用来看电视,但是你不去打开它(调用包),它就没有作用!
楼下的明显误导别人啊,包何来参数之说?只有包里面的程序才有参数,调用包里面过程的方法如下:
begin
exec 包名.过程名();
end;
函数的调用就不用我写了吧!
查看表的定义:
select dbms_metadata.get_ddl('TABLE',upper('table_name') from dual ;
查看视图的定义:
select text from user_views where view_name=upper('view_name') ;
查看index的定义:
select dbms_metadata.get_ddl('INDEX',upper('index_name') from dual ;
查看procedure的定义:
select text from user_source where name='PROCEDURE_NAME' ;
查看trigger的定义:
select trigger_body from user_triggers where trigger_name='trigger_name' ;
在存储过程或函数里调用oracle包的话,首先要有执行这个包的权限;如果包属于其他的用户(不是系统包),调用时:用户名.包名.存储过程(参数)名或者
变量:=用户名.包名.函数(参数);因为函数有返回值,变量类型要跟函数返回值的类型一致.
在command
下调用的话:exec
用户名.包名.存储过程名(参数);select
用户名.包名.函数名(参数)
from
dual;就可以了.包属于当期用户可以不写用户名.
我也是第一次听到这个词,不过可以猜一下.
个人认为所谓的数据库自动化,无非就是过程,包,触发器这些你编译的脚本能否自动运行.
debug是找过程错误的方式,然后就是假数据调试,最后就是联调.
这么说吧,和过程出错了,找出错的地方大体上类似.只不过可能多了连接测试(出现争用或者锁表的几率),相应时间测试(平均运行多上时间,是否符合规定等等),甚至可能包括压力测试(一次能满足多少个操作).等等.
还有一种就是基于时间的,主要是计划任务和定时任务,这两个就是先执行,看看能不能执行,然后在修改时间,到几分钟后,看能不能执行.我认为主要可能就是这几个方面.
另外多句嘴,自动化测试应该有严格的测试用例,这个一般要测试部门编写,不然万一出了问题找谁啊?所以这个问题还真的没想过.
包头
create or replace package package_name is
prcedure p1;
end package_name;
包体
create or replace package body package_name is
prcedure p1 is
--代码省略
end p1;
①..打开PL/SQL
Developer
如果在机器上安装了PL/SQL
Developer的话,打开PL/SQL
Developer界面
找到需要调试的存储过程所在的包(Package
这样就为包体添加了调试信息.
现在所有的准备工作都做好了,可以调试跟踪存储过程了.
测试窗口中有为了测试该存储过程自动所产生的代码,当然你也可以自己另外加入和修改代码,对于我们目前只是为了调试存储过程,自动生成的代码已经足够了.接着按照如下的步骤进行调试.
(1)添加存储过程所需要的参数,我们项目中的大多数存储过程都是需要参数的,参数可以在测试窗口右下部分输入.
运行(Ctrl+R)
单步进入(Ctrl+N)
单步跳过(Ctrl+O)
单步退出(Ctrl+T)
当按Ctrl+N进去存储过程的源代码中后
在这个窗口中可以查看过程中的变量值和堆栈.
以上就是土嘎嘎小编为大家整理的oracle怎么测试包体相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!