2010-10-27 101 views
11

我需要将C#.net应用程序中的数组传递给Oracle存储过程。 任何人都可以让我知道如何去做? 另外,在将输入参数传递给存储过程时,在C#中使用哪种OracleType类型?将.Net应用程序中的数组传递给Oracle存储过程

仅供参考,我在我的C#应用​​程序中使用System.Data.OracleClient。

谢谢。

回答

7

Jimmy, System.Data.OracleClient不支持数组。
http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/57a59fba-09e2-46cb-a072-6706b3ec5131

根据你的需要,你要么需要通过嵌套表类型来实现这一点(通过的UDT或副教授。数组)使用ODP.net客户。这可能是一个好的方向,尤其是。因为.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

希望这可以帮助

2

您应该使用DB定义的嵌套表类型将数组传递给PL/SQL。看看this nice tutorial,它可能会帮助你。

+0

嗨,感谢您的回答,但这种方法需要Oracle .NET驱动程序Oracle.DataAccess,而我正在使用Microsoft System.Data.OracleClient。 – Jimmy 2010-10-27 11:10:16

+0

@Jimmy你好。我恳求我的赦免,我不注意。必须承认,我不知道如何解决你的问题与System.Data.OracleClient :) – andr 2010-10-27 12:01:52

+1

这是最好切换到Oracle驱动程序。更多的功能,他们会支持未来。这是另一个接受数组的过程的例子。 [链接](http://stackoverflow.com/questions/831188/how-to-create-a-stored-procedure-in-oracle-which-accepts-array-of-parameters) – MonkeyWrench 2011-10-27 19:45:35

相关问题