来自 Oracle 存储过程的 ASP.NET 数据集
Posted
技术标签:
【中文标题】来自 Oracle 存储过程的 ASP.NET 数据集【英文标题】:ASP.NET DataSet from Oracle Stored Procedure 【发布时间】:2011-12-13 11:59:41 【问题描述】:我从这个网站上阅读了很多问题和文章。 但是,我厌倦了寻找我想要操纵的东西。 在 SQL Server 中,我曾经调用过类似“EXEC Some_Procedure_name arg1, 'arg2', arg3, 'arg4'”的过程。 当输入参数为数字时,我不会使用单引号。 但是在 oracle 中,我真的需要编写类似使用输入和输出参数的东西吗? 假设过程如下:
CREATE OR REPLACE PROCEDURE GET_JOB
(
p_JOB_ID IN varchar2,
outCursor OUT MYGEN.sqlcur
)
IS
BEGIN
OPEN outCursor FOR
SELECT *
FROM JOB
WHERE JOB_ID = p_JOB_ID;
END GET_JOB;
/
然后我必须在我的 c# 代码中指定输入参数的名称,如下所示:
var userNameParameter = command.Parameters.Add("p_JOB_ID", Job_ID);
returnValueParameter.Direction = ParameterDirection.In;
我不能像“Execute GET_JOB 'j208';”这样称呼它吗?
【问题讨论】:
【参考方案1】:要从 Oracle 中的存储过程返回数据集,您需要使用“REF CURSOR”。
这里有详细的解释,带有 .NET 的代码示例:
http://www.oracle.com/technetwork/articles/dotnet/williams-refcursors-092375.html
【讨论】:
谢谢。我读过那篇文章。顺便说一句,也许你没有仔细阅读我的问题。我不是在问如何使用输出参考光标。我已经知道如何使用它了。但我在问如何使用像“Execute GET_JOB 'j208';”这样的语法在甲骨文中。你还有什么建议吗?以上是关于来自 Oracle 存储过程的 ASP.NET 数据集的主要内容,如果未能解决你的问题,请参考以下文章
从 ASP.NET 调用 Oracle 存储过程时,无法将“System.Int32[]”类型的对象转换为“System.IConvertible”类型
将 DbDataReader 的结果转换为 ASP.NET MVC 4 中的数据库模型,来自使用 ADO.NET 的存储过程 [重复]