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 句があることです。カーソルを正しく設定していませんか?