2012-05-07 4 views
0

여기서이 Oracle 프로 시저의 마지막 문장 "AND TR.VALUE> 49)"을 제거해야합니다. 나는이 문제를 언급 할 때, 나는 여기에 오류가 점점 오전 : AND (ARCH> = 0Oracle sp에서 누락 된 괄호

오류없는 오른쪽 괄호 우리가 마지막 문을 가지고 있기 때문에, 그럼 내가이없는 괄호을해야

CREATE OR REPLACE PROCEDURE HPTC.THS_GET_CNA_PE_DET (
    FACILITYKEY VARCHAR2, 
    STARTDATE DATE, 
    ENDDATE DATE, 
    MENUID NUMBER, 
    MENUIDVALUE NUMBER, 
    MINVALUE NUMBER, 
    MAXVALUE NUMBER, 
    SHIFTFACILITY VARCHAR2, 
    THEUNIT VARCHAR2, 
    THESHIFT NUMBER, 
    OCURSOR OUT SYS_REFCURSOR 
) 
AS 
    ARCH NUMBER(1) := 0; 
    SPLITDATE DATE; 
BEGIN 
    BEGIN 
    SELECT NVL(SPLIT_DATE, TO_DATE('01012000', 'MMDDYYYY')) + 1 
     INTO SPLITDATE 
     FROM OGEN.GEN_P_ARCHIVE 
    WHERE FACILITY_KEY = FACILITYKEY; 
    EXCEPTION 
    WHEN NO_DATA_FOUND THEN 
     SPLITDATE := TO_DATE('01022000', 'MMDDYYYY'); 
    END; 

    IF SPLITDATE <= ENDDATE THEN ARCH := ARCH + 1; END IF; 
    IF SPLITDATE >= STARTDATE THEN ARCH := ARCH - 1; END IF; 

OPEN OCURSOR FOR 
    SELECT 
    TR.FACILITY_KEY, 
    TR.TR_DATETIME TRDATE, 
    PM.NURSING_UNIT UNIT, 
    TR.MENU_ID, 
    NVL(D.DESCR_SHORT, 'Other') MTYPE, 
    SH.DESCR SHIFT, 
    PM.LAST_NAME, 
    PM.FIRST_NAME, 
    PM.PATIENT_ID, 
    PM.MRN, 
    TR.VALUE, 
    U.NAME_FULL CNANAME 
FROM HPTC.THS_T_TRANSACTIONS1 TR, 
    GEN.GEN_M_PATIENT_MAST PM, 
    GEN.GEN_C_SHIFT SH, 
    HPTC.THS_M_USERS1 U, 
    HPTC.THS_M_MENU2 M1, 
    ( SELECT * 
    FROM HPTC.THS_M_MENU2 M2 
    WHERE (M2.MENU_ID_PARENT = 107) 
) M2, 
    HPTC.THS_C_MENU_DESCR D 
WHERE (TR.PAT_NUMBER = PM.PAT_NUMBER) 
AND ((TR.SHIFT_CODE = SH.SHIFT_CODE 
AND SH.FACILITY_KEY = SHIFTFACILITY)) 
AND ((TR.USER_ID = U.TS_USER_ID)) 
AND ((M1.MENU_ID (+) = TR.MENU_ID)) 
AND ((M2.MENU_ID (+) = M1.MENU_ID_PARENT)) 
AND ((D.DESCR_ID (+) = M2.DESCR_ID)) 
AND (ARCH >= 0 

AND TR.FACILITY_KEY = FACILITYKEY 
AND TR.TR_DATETIME BETWEEN STARTDATE AND ENDDATE 
AND TR.EDIT_NO < 0 
AND TR.MENU_ID IN (1070103 , 1070203 , 1070803 , 1070403 , 1070503 , 1070603 , 1070703 ) 
AND GEN.STR2NUM(TR.VALUE) <= MAXVALUE 
AND (DECODE(THEUNIT , '' , NULL , THEUNIT) IS NULL 
OR PM.UNIT_CODE = THEUNIT) 
AND (DECODE(THESHIFT , 0 , NULL , THESHIFT) IS NULL 
OR TR.SHIFT_CODE = THESHIFT) 
-- AND TR.VALUE > 49) 
+0

아마'또는 TR.SHI 후 FT_CODE = THESHIFT)'그 줄을 만들거나 OR TR.SHIFT_CODE = THESHIFT))'. 그러나 where 절로 무엇을 말하려고하는지에 따라 달라집니다. 나는 누락 된 오른쪽 괄호를 어디에 넣어야 하는지를 알기 위해 테이블 ​​구조와 의도 된 사용법에 대해 충분히 알지 못합니다. –

답변

1
.? ?

는 주석 텍스트를 제거하고 바로 닫는 괄호두고 그래서
을하려고 했나 "- AND TR.VALUE은> 49)"
은된다 :
")"

관련 문제