问题条件
我有一个非常简单的 Oracle (11g) 存储过程,声明如下:
CREATE OR REPLACE PROCEDURE pr_myproc(L_CURSOR out SYS_REFCURSOR)
is
BEGIN
OPEN L_CURSOR FOR
SELECT * FROM MyTable;
END;
这编译正确。光标包含 col1、col2 和 col3。
在 SSRS 中,我有一个使用 Oracle OLEDB Provider for Oracle 11g 的共享数据源:
Provider=OraOLEDB.Oracle.1;Data Source=LIFEDEV
(加上用户凭据)。
什么工作正常:
- 存储过程在 PL/SQL Developer 中正确执行
- SSRS 中的“测试连接”工作正常
- 命令类型为“文本”的查询字符串
SELECT * FROM MyTable;
会在 SSRS 报告中生成正确的字段。 - .NET Oracle 提供程序而不是 Oracle OLE DB 提供程序
什么失败:
如果我将命令类型更改为“存储过程”并输入“pr_myproc”,当我单击“确定”时,Visual Studio 2005(服务包 2)只会挂起/崩溃。
有没有人有这方面的知识/经验?
非常感激任何的帮助。谢谢。
更多信息
我已将提供程序从 Oracle OLE DB 提供程序修改为 .NET Oracle 提供程序,并且神奇地工作。
这似乎表明 Oracle 提供程序存在问题。
还有什么想法吗?