我有一个存储过程,它具有嵌套表的几个参数。可以从ODP.NET调用具有嵌套表参数的Oracle存储过程吗?
CREATE TYPE FOO_ARRAY AS TABLE OF NUMBER;
CREATE TYPE BAR_ARRAY AS TABLE OF INTEGER;
CREATE PROCEDURE Blah(
iFoos IN FOO_ARRAY,
iBars IN BAR_ARRAY,
oResults OUT SOMECURSORTYPE
) AS
BEGIN
OPEN oResults FOR
SELECT *
FROM SomeTable T
JOIN TABLE(iFoos) foos ON foos.column_value = T.foo
JOIN TABLE(iBars) bars ON bars.column_value = T.bar;
END
使用ODP.NET(Oracle.DataAccess.dll),有一种方法来调用这个存储过程,并传递数组到这些参数?我发现传递数组的唯一方法是如果参数类型是关联数组(SQL中不可访问的另一种类型的集合)。