plsql调试存储过程,传入参数为集合
Type(DJKSMD,DJKSMD_TABLE_TYPE是两个不同的Tpyes)
create or replace type DJKSMD as object
(
p_xn varchar2(30),
p_xq varchar2(30),
p_djksdm varchar2(100),
p_fzh varchar2(30)
)
create or replace type DJKSMD_TABLE_TYPE AS TABLE OF DJKSMD;
proc:
create or replace procedure JWXT_CJGL_IMPORTDJKSMD(p_Table IN DJKSMD_TABLE_TYPE,p_Msg out varchar2) is
v_DJKSMD DJKSMD;
i_cnt Integer default 0;
begin
for i in 1.. p_Table.Count loop
i_cnt :=i_cnt+1;
v_DJKSMD :=p_Table(i);
--dbms_output.put_line(v_DJKSMD.p_fzh);
--if i > 55040 then
p_Msg :=p_Msg||i||' '||v_DJKSMD.p_fzh||' ';
--end if;
end loop;
--p_Msg :=i_cnt;
end JWXT_CJGL_IMPORTDJKSMD;
test:
declare
-- Non-scalar parameters require additional processing
v_DJKSMD1 DJKSMD :=DJKSMD(2015,1,1,123);
v_DJKSMD2 DJKSMD :=DJKSMD(2015,1,1,12345);
v_DJKSMD3 DJKSMD :=DJKSMD(2015,1,1,123456);
p_table djksmd_table_type :=djksmd_table_type(v_DJKSMD1,v_DJKSMD2,v_DJKSMD3);
begin
-- Call the procedure
jwxt_cjgl_importdjksmd(p_table => p_table,
p_msg => :p_msg);
end;