ORACLE数据库中怎么调试Type
ORACLE数据库中如何调试Type
一般碰到ORACLE有需要调试存储过程参数中有是TYPE、LIST集合的时候,一般调试起来都比较麻烦。
现在用一种比较简单的方式展现下
TYPE代码
2.简单的存储过程
3. 调试的时候的存储过程匿名块书写
一般碰到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; 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;