0

SSRS用にいくつかのSQLServerレポートをOracleに変換する作業を行っており、最初のレポートが正しく機能するようになりました。

今、私は 2 番目のものに取り組んでいます。唯一の違いは、入力パラメーターがあることです。これらのパラメーターを 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;​

これがsprocの場合、結果としてこれを取得します

結果

しかし、私がちょうどするとき

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