pl/sql中存储过程含有自定义数组的参数:
测试debug模式:
例子 : 存储过程 PRE_BOOKTICKET_SEND 为 :
CREATE OR REPLACE PROCEDURE "PRE_BOOKTICKET_SEND"(TICKETID VARCHAR2,
PHONES tab_array,
nums ARRAY_NUMBER,
messages ARRAY_LONG_VARCHARS) is …………
其中 tab_array ,array_number, array_long_varchars 都是自己在数据库中定义的 type
(array_long_varchars :TE OR REPLACE TYPE "ARRAY_LONG_VARCHARS" AS table OF VARCHAR2(2500))
为了验证自己编写得存储过程 需要将 勾选 add debug information (pl/sql中可以手动添加模式)
然后 Test :
自动生成的SQL语句不完善 ,需要自己补全
例 :
declare
-- Non-scalar parameters require additional processing
phones tab_array;
nums array_number;
messages array_long_varchars;
begin
-- Call the procedure
phones := new tab_array();
declare
begin
for i in 1 .. 1 loop
phones.extend();
phones(i) := '13913884772';
end loop;
end;
nums := new array_number();
declare
begin
for i in 1 .. 1 loop
nums.extend();
nums(i) := 2;
end loop;
end;
messages := new array_long_varchars();
declare
begin
for i in 1 .. 1 loop
messages.extend();
messages(i) := '收到信息';
end loop;
end;
pre_bookticket_send(ticketid => :ticketid,
phones => phones,
nums => nums,
messages => messages);
end;
关键点是 extended