Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带Oracle的SSRS,在SP中给定参数时返回ref_游标_Oracle_Reporting Services - Fatal编程技术网

带Oracle的SSRS,在SP中给定参数时返回ref_游标

带Oracle的SSRS,在SP中给定参数时返回ref_游标,oracle,reporting-services,Oracle,Reporting Services,我正在将一些SQLServer报告转换为Oracle for SSR,并使第一个报告正常工作 现在我正在研究第二个,唯一的区别是它有输入参数。当我将这些参数添加到SP中时,它返回一个ref游标。当我将它们取出并只进行选择时,它会返回数据 create or replace PROCEDURE "getGriefDetails" (o_rc OUT sys_refcursor, inSource IN VARCHAR2, inTable IN VARCHAR2, inCategory in VAR

我正在将一些SQLServer报告转换为Oracle for SSR,并使第一个报告正常工作

现在我正在研究第二个,唯一的区别是它有输入参数。当我将这些参数添加到SP中时,它返回一个ref游标。当我将它们取出并只进行选择时,它会返回数据

create or replace PROCEDURE "getGriefDetails" (o_rc OUT sys_refcursor, inSource IN VARCHAR2,
inTable IN VARCHAR2, inCategory in VARCHAR2) AS
BEGIN
open o_rc for        

Select * from ERRORDATALOG   
WHERE (((inSource = 'ALL') AND (SOURCESYSTEM like '%')) OR (SOURCESYSTEM = inSource))
AND
(((inTable = 'ALL') AND (TABLENAME like '%')) OR (TABLENAME = inTable))
AND
(((inCategory = 'ALL') AND (GRIEFTYPE like '%')) OR (GRIEFTYPE = inCategory))
Order By SOURCESYSTEM, GRIEFTYPE, TABLENAME;

end;​
当这是存储过程时,我得到了这个结果

然而当我这么做的时候

create or replace PROCEDURE "getGriefDetails" (o_rc OUT sys_refcursor, inSource IN VARCHAR2,
    inTable IN VARCHAR2, inCategory in VARCHAR2) AS
    BEGIN
    open o_rc for        

    Select * from ERRORDATALOG;
end;

我得到数据。唯一的区别是我有一个带有参数的where子句。我没有正确设置光标吗?

不确定为什么它不工作。我通常先输入参数,然后输入参数。您可以将“SOURCESYSTEM like“%”改为“SOURCESYSTEM不为NULL”,或者完全忽略它。您是否尝试过将查询分解成更小的部分,例如“WHERE SOURCESYSTEM=inSource”?您似乎没有为VARCHAR2参数指定长度。@criticalfix我删除了整个WHERE子句,只是将部分放入其中。当我在数据库上运行该查询时,它会工作,但不会从SSRS上运行。@tgolisch我从来没有对varchar2参数设置过限制,也从来没有遇到过问题。我会试着换一下看看是否有帮助。