질문이 또 있어서 올릴께요..
프로시져 만드는데여..
SELECT LTRIM(SYS_CONNECT_BY_PATH(STRDESGNCD,'^,^'),'^,^')STRDESGNCD
INTO v_Group2_strdesgncd
FROM
(SELECT STRDESGNCD, ROW_NUMBER() OVER(PARTITION BY NUM ORDER BY NUM) RN, COUNT(*) OVER (PARTITION BY NUM) CNT
FROM
(SELECT STRDESGNCD , 1 num
FROM CHM_DESIGNATION_M
WHERE STRAGENTIDENTITY=22
)
)
WHERE LEVEL = CNT
START WITH RN =1
CONNECT BY PRIOR CNT = CNT
AND PRIOR RN = RN-1
;
DBMS_OUTPUT.PUT_LINE('v_Group1_strdesgncd:::'||v_Group1_strdesgncd||'********');
v_Group2_strdesgncd := replace(v_Group2_strdesgncd,'^','''');
***** 결과값이 AMGA','MGA','DMGA','ACGA 이렇게 나와요..
그리고 결과값이 'AMGA','MGA','DMGA','ACGA' 해도 아래 IF문을 안타드라고요..
v_strdesgncd 의 값은 MGA 예여..
v_strdesgncd IN (v_Group2_strdesgncd) 이러면
생각으로는 MGA IN ('AMGA','MGA','DMGA','ACGA') 이렇게 되서 IF을 타야되는데
타질 안네여..
IF v_strdesgncd IN (v_Group2_strdesgncd)
THEN
UPDATE CHM_AGENT_M
SET
strsupagentcd = ''
,strproductionlink = vsm_strpresidentcd
,strfsabranchcd = vsm_strfsabranchcd
,strsmagtcd = pi_SM_Code
,strdocagtcd = vsm_strpresidentcd
,striocagtcd = ''
,dtintvwstatus = vdt_today
,dtupdated = SYSDATE
,strupdatedby = pi_user_id
WHERE lapplcseqnbr = pi_seqno;
이렇게 쓰고싶은데 도통 저 IF문을 타지 안아요...
반드시 저 IF문을 태워야되는데 방법 점 알려주세요
그리고 좋은 다른 방법있으면 알려주세요...
네 감사합니다.. 해볼께요..^^