[英]Debugging stored procedure in SQL Server 2005 from Visual Studio?
[英]Selecting Oracle Stored Procedure in SSRS Crashes Visual Studio 2005 IDE
问题条件
我有一个非常简单的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
(加上用户凭据)。
可行的方法:
SELECT * FROM MyTable;
查询字符串SELECT * FROM MyTable;
命令类型为“文本”的SSRS报告中会生成正确的字段。 失败原因:
如果我将“命令类型”更改为“存储过程”并输入“ pr_myproc”,则当我单击“确定”时,Visual Studio 2005(Service Pack 2)只会挂起/崩溃。
有人对此有任何知识/经验吗?
非常感激任何的帮助。 谢谢。
更多信息
我已经将提供程序从Oracle OLE DB提供程序修改为.NET Oracle提供程序,并且神奇地,它可以工作。
这似乎表明Oracle提供程序存在问题。
还有其他想法吗?
我们深入到此。
在过程所在的环境中,我们有大量的数据字典。 这两个提供程序在查找信息时使用两个不同的查询。
这是Oracle Provider所使用的一种,耗时10分钟以上:
select * from (select null PROCEDURE_CATALOG
, owner PROCEDURE_SCHEMA
, object_name PROCEDURE_NAME
, decode (object_type, 'PROCEDURE', 2, 'FUNCTION', 3, 1) PROCEDURE_TYPE
, null PROCEDURE_DEFINITION
, null DESCRIPTION
, created DATE_CREATED
, last_ddl_time DATE_MODIFIED
from all_objects where object_type in ('PROCEDURE','FUNCTION')
union all
select null PROCEDURE_CATALOG
, arg.owner PROCEDURE_SCHEMA
, arg.package_name||'.'||arg.object_name PROCEDURE_NAME
, decode(min(arg.position), 0, 3, 2) PROCEDURE_TYPE
, null PROCEDURE_DEFINITION
, decode(arg.overload, '', '', 'OVERLOAD') DESCRIPTION
, min(obj.created) DATE_CREATED
, max(obj.last_ddl_time) DATE_MODIFIED
from all_objects obj, all_arguments arg
where arg.package_name is not null
and arg.owner = obj.owner
and arg.object_id = obj.object_id
group by arg.owner, arg.package_name, arg.object_name, arg.overload ) PROCEDURES
WHERE PROCEDURE_NAME = '[MY_PROCEDURE_NAME]' order by 2, 3
更多信息可以在这里找到
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.