数组及对象定义如下:
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;
本文介绍如何在PL/SQL存储过程中定义并使用数组类型,并通过Delphi应用程序使用ODAC控件来调用存储过程,实现数组数据的传递与处理。具体包括类型定义、存储过程创建以及Delphi下的参数设置。
1万+

被折叠的 条评论
为什么被折叠?



