使用 DBFactory 和 Oracle 存储过程 sys ref cursor 返回数据集
Posted
技术标签:
【中文标题】使用 DBFactory 和 Oracle 存储过程 sys ref cursor 返回数据集【英文标题】:Returning Dataset using DBFactory and Oracle Stored Procedure sys ref cusror 【发布时间】:2012-01-23 23:31:03 【问题描述】:我正在尝试使用 ODP.NET 提供程序和 DBFactory 从 oracle 引用游标返回数据集。 调用此函数时出现以下错误:
Invalid parameter binding
Parameter name: io_cursor
代码:
Dim dbManager As DBManager = New DBManager(ORACONN)
Dim ds As New DataSet()
Dim cmd As DbCommand = dbManager.CreateCommand()
cmd.CommandText = "SP_NAME"
Dim param As DbParameter = cmd.CreateParameter()
param.ParameterName = "io_cursor"
param.Value = Nothing
param.DbType = DbType.Object
param.Direction = ParameterDirection.Output
cmd.Parameters.Add(param)
Dim da = dbManager.CreateDataAdaptor()
da.SelectCommand = cmd
da.Fill(ds)
Return ds
我在这里缺少什么? DbType.Object 是否适用于 OracleDbType.RefCursor 类型?
【问题讨论】:
【参考方案1】:我不认为使用 DbType.Object 会起作用。我认为您应该改用 OracleDbType.RefCursor。
Documentation and example (C#)
【讨论】:
谢谢,是的,我知道,我正在创建一个独立于提供者的数据访问层。而且您不能将 param.DBType 设置为 Refcursor。以上是关于使用 DBFactory 和 Oracle 存储过程 sys ref cursor 返回数据集的主要内容,如果未能解决你的问题,请参考以下文章