Oracle 存储过程返回结果集

Posted

技术标签:

【中文标题】Oracle 存储过程返回结果集【英文标题】:Oracle stored procedure to return a result set 【发布时间】:2012-10-27 05:40:08 【问题描述】:

我是 Oracle 的新手,我需要编写一个返回结果集的存储过程。将使用链接服务器从 SQL Server 调用存储过程。 我知道我可以使用 ref 游标从 PL/SQL 服务器返回结果集,但我也看到存储过程返回某种数组(例如声明为数字表),然后将其与结果一起返回。 这样做的正确方法是什么?

【问题讨论】:

我认为您将从 Java 调用您的过程。在这种情况下,过程将直接从 Oracle 或通过 SQL Server 调用? 将使用链接服务器从 SQL Server 调用该过程。 【参考方案1】:

经过对 Oracle 论坛的一些调查和我自己的测试...... 参考光标是合适的方式。 使用 oracle oledb 提供程序时,关联数组将无法正常工作。

【讨论】:

要记住的一点是,如果您的查询跨过 oracle 服务器上的数据库链接,则不能返回引用游标。这两个限制加在一起是超级痛苦的。 嗯,它将通过 SQL Server 中的链接服务器,但直接来自 Oracle,我已经对其进行了测试,并且确实有效。 抱歉,我不是很清楚,如果您在 Oracle 中通过数据库链接加入或查询,则无法返回引用游标。

以上是关于Oracle 存储过程返回结果集的主要内容,如果未能解决你的问题,请参考以下文章

oracle存储过程如何输出结果集

oracle存储过程 中把临时表数据 返回结果集

oracle 存储过程,数据处理并返回结果集问题

Oracle 存储过程返回结果集

oracle 存储过程执行动态SQL 返回结果给游标,外部程序获得dataset结果集。

C#中使用Oracle存储过程返回结果集