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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值