Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ref游标作为ODP.NET的输入类型_C#_Oracle_Odp.net_Ref Cursor - Fatal编程技术网

C# 使用ref游标作为ODP.NET的输入类型

C# 使用ref游标作为ODP.NET的输入类型,c#,oracle,odp.net,ref-cursor,C#,Oracle,Odp.net,Ref Cursor,我试图使用RefCursor作为Oracle存储过程的输入参数。其思想是选择一组记录,将它们输入存储过程,然后SP在输入RefCursor上循环,对其记录执行一些操作。否,我无法选择SP内的记录,因此避免使用RefCursor作为输入类型 我在Oracle的文档中找到了一个如何执行此操作的示例(这里是链接,但我似乎还不能使用它们),但它使用了一个简单的SELECT来填充输入RefCursor;这就是问题所在:我必须从代码中填充它 你看,在代码中我有: [OracleDataParameter("

我试图使用
RefCursor
作为Oracle存储过程的输入参数。其思想是选择一组记录,将它们输入存储过程,然后SP在输入
RefCursor
上循环,对其记录执行一些操作。否,我无法选择SP内的记录,因此避免使用
RefCursor
作为输入类型

我在Oracle的文档中找到了一个如何执行此操作的示例(这里是链接,但我似乎还不能使用它们),但它使用了一个简单的
SELECT
来填充输入
RefCursor
;这就是问题所在:我必须从代码中填充它

你看,在代码中我有:

[OracleDataParameter("P_INPUT", OracleDbType.RefCursor, ParameterDirection.Input)]
private List<MiObject> cursor;
[OracleDataParameter(“P_输入”,OracleDbType.RefCursor,ParameterDirection.INPUT)]
私有列表游标;
而且,我尝试过用
列表
数据表
、甚至是
MyObject
的普通数组填充游标,但没有任何效果。当我尝试运行测试时,我得到一个错误:

“无效的参数链接”

也许不是确切的措辞,因为我是从西班牙语翻译过来的,但这就是信息


有什么想法吗?

根据记忆,ODP.NET库中的某个地方是否有一个可用的
OracleCursor
类?

我还与Mark Williams联系,他是我试图在我的帖子上链接的文章的作者,他回答如下:

" 给我发电子邮件没问题,不过,我想我的回答会让你失望

不幸的是,您无法完成您想要做的事情(像这样从客户端创建一个refcursor)

其中的两个问题是,refcursor指的是Oracle在服务器上拥有的内存,而Oracle没有DataTable或.NET列表等客户机项的概念

除了使用参照光标,您还有其他可用选项吗? "

所以基本上我完蛋了,这个问题结束了。感谢大家的阅读和/或帮助。

请将refcursor作为oracle technet的pl/sql输入


clou是指输入refcursor对象必须由oracle自己创建。您无法将列表或任何其他内容转换为refcursor。

(即使它存在,也要检查它是否满足您的需要…我的记忆有点模糊)