【问题标题】:Passing an array from .Net application to Oracle stored procedure将数组从 .Net 应用程序传递到 Oracle 存储过程
【发布时间】:2011-05-01 05:27:18
【问题描述】:

我需要将一个数组从 C#.net 应用程序传递到 oracle 存储过程。 谁能让我知道该怎么做? 另外,在 C# 中将输入参数传递给存储过程时,我应该使用哪种 OracleType 类型?

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

谢谢。

【问题讨论】:

    标签: c# oracle stored-procedures plsql


    【解决方案1】:

    吉米, 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

    希望对你有帮助

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 您好,感谢您的回答,但这种方法需要 Oracle .NET 驱动程序 Oracle.DataAccess 而我使用的是 Microsoft System.Data.OracleClient。
      • @Jimmy 你好。对不起,我不专心。必须承认我不知道如何用 System.Data.OracleClient 解决您的问题 :)
      • 最好切换到 Oracle 驱动程序。更多功能,它们将在未来得到支持。这是另一个接受数组的过程示例。 link
      猜你喜欢
      • 2011-11-16
      • 1970-01-01
      • 2015-10-03
      • 2019-08-26
      • 2011-07-29
      • 2012-11-23
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多