[英]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.