0

我正在为 SSRS 将一些 SQLServer 报告转换为 Oracle,并让第一个报告正常工作。

现在我正在研究第二个,唯一的区别是它有输入参数。当我将这些参数添加到 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 子句。我没有正确设置我的光标吗?

4

0 回答 0