pl/sql中儲存過程測試
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