2017-12-05 10 views
0

SELECT 문으로 관련 조건을 확인해야합니다. 간단히 말해서 나는 이것을 필요로한다. 나는이 SELECT 문 앞에서 언급 한 조건을 추가 할 필요가커서 내부 조건 추가

CURSOR PR_CASHDEPOSITEMAIL IS 
    SELECT  B.STR_DEALER_NAME AS DEALERNAME, 
       B.STR_BC_BRANCH_CODE AS ASSINGBRANCH, 
       A.STRDDH_DEALERCODE AS ICAMDEALERCODE, 
       B.STR_DEALER_CODE AS DEALERCODE, 
       TO_DATE(A.DTDDH_DPDATE,'DD/MM/YYYY')AS RECEIPTDATE, 
       A.NUMDDH_BALANCEAMOUNT AS RECEIPTAMOUNT, 
       A.STRDDH_DPSLNO AS DEPOSITNUMBER 
    FROM  GLINFO.TBLDEALERDEPOSITEHEADER A , 
       ADL.REF_DEALER_MASTER B , 
       CORPINFO.TBLBRANCHES C 
    WHERE  A.NUMDDH_BALANCEAMOUNT >0 
    AND   A.STRDDH_DEALERCODE=B.STR_COMP_DEALER_CODE 
    AND   B.STR_BC_BRANCH_CODE=C.BRN_CODE 
    AND   B.str_bc_branch_code =strBranch 
    ORDER BY B.STR_BC_BRANCH_CODE, B.STR_DEALER_NAME, RECEIPTDATE, DEPOSITNUMBER; 

BEGIN 

--rest of code 

:

if systemdate is 'Monday' then 
    select statement1(which contains cursor) 
else 
    select statement 2(which contains cursor) 

여기 내 코드입니다.

+0

당신은 당신의 예제에서 하나의 문이있다. 'statement1'과'statement2'는 무엇입니까? – Dmitry

+0

진술 2는 진술 1과 동일합니다. 차이점은 다른 날짜 범위 만 잡는다는 것입니다. – Didu

답변

1

커서가있는 매개 변수를 사용하면 도움이됩니다. 커서 선언 : 커서의

CURSOR PR_CASHDEPOSITEMAIL (p_day varchar2) -- <-- parameter declaration 
    IS 
    SELECT <...> 
    FROM <...> 
    WHERE <...> 
     and to_date(some_date_column, 'Day') = p_day; -- <-- parameter use in query 

사용 :

... 
begin 
    open PR_CASHDEPOSITEMAIL('Monday'); -- <-- passing value to the cursor 
    ...