2017-06-07 1 views
1

J'ai une procédure avec date_parameter comme ci-dessous:Comment exécuter Oracle (TOAD) Procédure dans le Générateur de rapports SQL Server avec date_parameter

CREATE OR REPLACE PROCEDURE R_T.Test1 (
Test1 IN OUT Reports.rep_type, 
date_parameter IN system_days.daytime%TYPE) 
AS 
BEGIN 
OPEN Test1 FOR 
select * from 
(select 
     sum(max(case when code = 'C3_TOTAL_PROD' then NET_MASS_MTD_MTON else null end)) C3_TOTAL_PROD_MTD_MASS_S1, 
     sum(max(case when code = 'C4_TOTAL_PROD' then NET_MASS_MTD_MTON else null end)) C4_TOTAL_PROD_MTD_MASS_S1, 
     sum(max(case when code = 'S_TOTAL_PROD' then NET_MASS_MTD_MTON else null end)) S_TOTAL_PROD_MTD_MASS_S1 
    from MV_D_MAS 
    where production_day between trunc(Date_Parameter, 'YEAR') 
      and LAST_DAY(date_parameter) 
    group by production_day 
) a; 
END; 

Maintenant je dois l'utiliser dans générateur de rapports de serveur SQL. J'ai appelé la procédure comme:

declare 
res_cur r_t.Reports.rep_type; 
begin 
r_t.Test1(res_cur, Date '2017-03-22'); 
end; 

Mais cela ne donne pas de résultat.

J'ai besoin quelque chose de similaire à la requête SQL:

EXECUTE db.spTestSSRS2 @InputDate 

S'il vous plaît aider. Merci.

Répondre

0

Si l'on suppose r_t.Reports.rep_type est un curseur ref vous pouvez l'exécuter comme ceci:

begin 
    r_t.Test1(:rc, Date '2017-03-22'); 
end; 

TOAD fera apparaître une fenêtre de propriétés, vous demandant de fournir une valeur pour le paramètre :rc. Choisissez le type de données cursor. Lorsque votre procédure est terminée, vous serez en mesure d'afficher la sortie dans l'onglet Data Grid.

+0

Super, merci pour celui-ci. Mais j'ai besoin d'être dans SQL Server Report Builder. Comment appeler pour qu'il déclenche date_parameter et donne des résultats. – CODECO