Stored procedures 如何使用dotconnect for oracle调用以嵌套表为参数的存储过程
我想传递一个嵌套表(OracleTable in dotconnection?)作为参数来调用包中的存储过程。文件包中定义了类型test002_表。存储过程的代码如下:Stored procedures 如何使用dotconnect for oracle调用以嵌套表为参数的存储过程,stored-procedures,parameters,dotconnect,nested-table,Stored Procedures,Parameters,Dotconnect,Nested Table,我想传递一个嵌套表(OracleTable in dotconnection?)作为参数来调用包中的存储过程。文件包中定义了类型test002_表。存储过程的代码如下: create or replace package testPro is type test002_table is table of test002%rowtype; procedure testInsert(tbs test002_table); end testPro; create or repla
create or replace package testPro is
type test002_table is table of test002%rowtype;
procedure testInsert(tbs test002_table);
end testPro;
create or replace package body testPro is
procedure testInsert(tbs test002_table) is
i int;
begin
delete from test002;
for i in 1..tbs.count loop
insert into test002 values tbs(i);
end loop;
end;
end;
使用PL\SQL编写的测试成功运行:
declare
tab testpro.test002_table := testpro.test002_table();
item test002%rowtype;
i integer;
begin
tab.extend();
item.id:=1;
item.name:='a';
item.lev:=5;
item.age:=55;
item.address:='das';
tab(tab.count) := item;
testPro.testInsert(tab);
commit;
end;
但是我不知道如何使用dotConnect调用这个过程。我试过以下方法,但没有成功:
OracleCommand cmd = new OracleCommand();
cmd.Connection = con; //OracleConnection con
cmd.CommandType = System.Data.CommandType.StoredProcedure;
OracleType tp = OracleType.GetObjectType("testPro.test002_table", con);
OracleTable table = new OracleTable(tp);
Dotconnect找不到类型。
如何获取OracleType所需的对象?或者这个问题可以通过其他方式解决吗?非常感谢。在包中声明的用户定义类型不能在此包之外使用。请全局定义OracleTable类使用的类型:
create or replace type test002_type as object(
-- list here the test002 columns
c1 number,
c2 number
);
/
create or replace type test002_table is table of test002_type;
/
JIC:ROWTYPE是PL/SQL构造,在SQL create type语句中无法识别