ORACLE数据库中如何调试Type

一般碰到ORACLE有需要调试存储过程参数中有是TYPE、LIST集合的时候,一般调试起来都比较麻烦。

现在用一种比较简单的方式展现下


TYPE代码


--子TYPE
CREATE OR REPLACE TYPE RSS_STR_OBJECT_TYPE IS OBJECT
(
str_value varchar2(200)
);
grant Execute on rssdata.RSS_STR_OBJECT_TYPE to rssopr;
grant execute on rssdata.RSS_STR_OBJECT_TYPE to r_rssdata_Exec;


--父TYPE代码
CREATE OR REPLACE TYPE RSS_STR_OBJECT_TYPE_LIST IS TABLE OF rssdata.RSS_STR_OBJECT_TYPE

grant Execute on rssdata.rss_str_object_type_list to rssopr;
grant execute on rssdata.rss_str_object_type_list to r_rssdata_Exec;


2.简单的存储过程

PROCEDURE rss_test_type_list_pro(in_rss_str_object_type_list IN rss_str_object_type_list,
out_retcode OUT Varchar2,
out_message OUT Varchar2) IS

i NUMBER;
begin
--修改对计数器赋值应该放到LOOP外面
i := in_rss_str_object_type_list.first;
LOOP



INSERT INTO TEST
(D)
VALUES
(in_rss_str_object_type_list(i).str_value);

EXIT WHEN i = in_rss_str_object_type_list.last;
i := in_rss_str_object_type_list.next(i);
END LOOP;

EXCEPTION
WHEN OTHERS THEN
out_retcode := '9';
out_message := '[rss_test_type_list_pro]错误信息' || SQLCODE || ',' ||
SUBSTR(SQLERRM, 1, 120);
END rss_test_type_list_pro;


3. 调试的时候的存储过程匿名块书写


declare
-- 首先初始化这个需要测试的对象 创建一个对象
in_rss_str_object_type_list rss_str_object_type_list:= rss_str_object_type_list();
-- 再对其中需要测试的一个集合变量m1赋值
in_rss_str_object_type_m1 rss_str_object_type := rss_str_object_type('深圳常兴支行');
begin
-- 调用存储过程的时候开始
in_rss_str_object_type_list.extend();
--将成员m1赋值给集合的最后一个元素
in_rss_str_object_type_list(in_rss_str_object_type_list.last) := in_rss_str_object_type_m1;

rss_test.rss_test_type_list_pro(in_rss_str_object_type_list => in_rss_str_object_type_list,
out_retcode => :out_retcode,
out_message => :out_message);
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值