来自 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 的存储过程 [重复]

用asp.net执行存储过程

Oracle存储过程创建临时表,插入数据后,怎么返回临时表数据,并在asp.net中接收到datatable中

测试 Oracle 存储过程的最简单方法

无法在 asp.net mvc 中显示来自 s3 存储桶的上传图像