【发布时间】:2011-05-01 05:27:18
【问题描述】:
我需要将一个数组从 C#.net 应用程序传递到 oracle 存储过程。 谁能让我知道该怎么做? 另外,在 C# 中将输入参数传递给存储过程时,我应该使用哪种 OracleType 类型?
仅供参考,我在我的 C# 应用程序中使用 System.Data.OracleClient。
谢谢。
【问题讨论】:
标签: c# oracle stored-procedures plsql
我需要将一个数组从 C#.net 应用程序传递到 oracle 存储过程。 谁能让我知道该怎么做? 另外,在 C# 中将输入参数传递给存储过程时,我应该使用哪种 OracleType 类型?
仅供参考,我在我的 C# 应用程序中使用 System.Data.OracleClient。
谢谢。
【问题讨论】:
标签: c# oracle stored-procedures plsql
吉米,
System.Data.OracleClient 不支持数组。
http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/57a59fba-09e2-46cb-a072-6706b3ec5131
根据您的需要,您将需要使用 ODP.net 客户端通过嵌套表类型(通过 UDT 或关联数组)来实现这一点。这可能是一个很好的方向,尤其是。因为.net 4.0 有deprecated System.Data.OracleClient。
但是,如果您被 System.Data.OracleClient 困住,并且您真的只是想在列表中做一个变量,您可以通过传入一个字符串并遵循以下一些建议来做到这一点: http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:210612357425
希望对你有帮助
【讨论】:
您应该使用 DB 定义的嵌套表类型将数组传递给 PL/SQL。看看this nice tutorial,或许对你有帮助。
【讨论】: