DATOR


한글을 반대(Reverse)로해서 보기 02. SQL


가끔 문자열을 뒤집어서 보고 싶을 때가 있다.

영문과 숫자는 오라클에서 제공하는 함수를 이용하면 간단히 해결할 수 있다.

 

SELECT REVERSE('ABCD1234')
FROM   DUAL
;

 

그러나, 한글을 뒤집고 싶을때 사용할 방법이 없어 함수를 생성해 보았다,

CREATE OR REPLACE FUNCTION REV_STRING(P_STR IN VARCHAR)
RETURN VARCHAR2
IS
   V_STR VARCHAR2(4000);
   V_LEN NUMBER;
   R_STR VARCHAR2(4000);
BEGIN

   V_STR := P_STR;
   V_LEN := LENGTH(V_STR);
  
   SELECT REPLACE(SYS_CONNECT_BY_PATH(STR,','),',')
   INTO   R_STR
   FROM
   (
       SELECT LEVEL,ROWNUM NO, SUBSTR(P_STR,ROWNUM,1) STR
       FROM DUAL
       CONNECT BY LEVEL <= LENGTH(P_STR)
   )
   WHERE CONNECT_BY_ISLEAF = 1
   CONNECT BY PRIOR NO = NO + 1
   START WITH NO = V_LEN;
  
   RETURN R_STR;
  
END;

SELECT REV_STRING('우리나라')
FROM DUAL

;

 

REV_STRING('우리나라')

---------------------------------
라나리우


작은 TIP이었어요.

 

Tag :

Leave Comments