使用数组实现oralce批量数据提交

本文介绍如何在PL/SQL存储过程中定义并使用数组类型,并通过Delphi应用程序使用ODAC控件来调用存储过程,实现数组数据的传递与处理。具体包括类型定义、存储过程创建以及Delphi下的参数设置。

 数组及对象定义如下:

create or replace type t_test as object (value number(9));

create or replace type t_testarr as table of  t_test;

存储过程:

procedure pro_test(testval in t_testarr )

PL/SQL develop下:

declare
  valt_testarr;
begin
  val:=t_testarr(t_test (10),t_test (11),t_test (12),t_test(13));
  execute immediate 'call pro_test (:val)'using val;
  commit;
end;

delphi下使用odac控件:

  with OraQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add('begin');
    sql.Add('pro_test(1,:testval);');
    sql.Add('end;');
    with OraQuery1.ParamByName('testval').AsArray do
    begin
       ObjectType:=TOraType.Create(OraSession1.OCISvcCtx,'t_testarr);
       ItemAsObject[1].AttrAsInteger['value ']:=10;
       ItemAsObject[2].AttrAsInteger['value ']:=11;
       ItemAsObject[3].AttrAsInteger['value ']:=12;
       ItemAsObject[4].AttrAsInteger['value ']:=13;
    end;
    ExecSQL;
    close;
    sql.Clear;
  end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值