본문 바로가기

카테고리 없음

코드값 구하는 함수 oracle

코드값 구하는 함수

 

가능하면 코드값은 01 02 이런식으로 LIKE 검색 가능하게하면 이럴걱정은없음//

 

SELECT FN_ORG_YN('11,2,3') FROM DUAL;

SELECT FN_ORG_YN('1','3') FROM DUAL;

 

SELECT FN_ORG_YN('2,3,4,11,14,15','14') FROM DUAL; 

 

 

 

 

CREATE OR REPLACE FUNCTION FN_ORG_YN(FIELD_CD VARCHAR2,PARAM_CD VARCHAR2) 

RETURN VARCHAR2

is   

     returnVal varchar(100) :='';   

BEGIN  

      IF LENGTH(regexp_replace(FIELD_CD, '[^,]+')) > 0 THEN 

        FOR i IN 0.. LENGTH(regexp_replace(FIELD_CD, '[^,]+'))  LOOP 

            IF PARAM_CD = REGEXP_SUBSTR(FIELD_CD, '[^,]+', 1, (i+1)) THEN

              returnVal :='Y';

              return returnVal;  

            ELSE

              returnVal := 'N';

            END IF ;  

        END LOOP; 

      ELSE 

        IF PARAM_CD = FIELD_CD THEN

            returnVal := 'Y';

        ELSE 

          returnVal := 'N';        

        END IF ;

      END IF ;

    return returnVal;   

end;