2

私はOracle SQLのプログラミングに非常に慣れていません。次の sql は、パラメーターを使用して Oracle ストアド プロシージャで使用できますか (パラメーターを使用する場所については、を参照してください)。もしそうなら、どのように?

Select Tuo.* 
 From OFFVISITS Tuo
 inner join (                   
 select mr1.pat_id, count(mr1.contact_date) 
 from OFFVISITS mr1
 inner join (                                 
   select pat_id,count(contact_date) 
   from OFFVISITS
   Where Death_Date Is Null
   A nd Rpt_Grp = <parameter 1>    
    AND MONTHS_BETWEEN(SYSDATE,CONTACT_DATE) <= <parameter 2>   
   group by pat_id
   having count(contact_date) >= <parameter 3>) mr2 on mr2.pat_id = mr1.pat_id    
Where Mr1.Death_Date Is Null
And Mr1.Rpt_Grp = <parameter 4> 
AND MONTHS_BETWEEN(SYSDATE,mr1.CONTACT_DATE) <= <parameter 5> 
and mr1.ref_bill_code in (select DIAGNOSIS_CODE from DIAG_CODES)
group by mr1.pat_id
Having Count(Mr1.Contact_Date) >= 1) Mr On Mr.Pat_Id = Tuo.Pat_Id  
AND TUO.RPT_GRP = <parameter 6>  
order by tuo.pat_id';

ありがとう。

4

1 に答える 1

1

はい、できます。これを試して

CREATE OR REPLACE PROCEDURE MyFirst_PROC
(
    PARAMETER_1_  IN   VARCHAR2,
    PARAMETER_4_  IN   INT,
    PARAMETER_5_  IN   DATE
)
IS
BEGIN


   ...
   Where Mr1.Death_Date Is Null
   And Mr1.Rpt_Grp = PARAMETER_4_   
   AND MONTHS_BETWEEN(SYSDATE,mr1.CONTACT_DATE) <= PARAMETER_5_ 

END;

残りのパラメーターを残して、パラメーターの種類を入力して修正する必要があるため、列 (例: Mr1.Rpt_Grp) の種類を推測する必要がありました。

于 2012-11-25T20:41:27.957 に答える