본문 바로가기
DB/ORACLE,HANA

Oracle -> S4Hana translate 대체 함수

by ESTP 개발자 2023. 3. 13.

SAP HANA SQL Reference Guid에서 찾았다.

 

SAP HANA랑 S4 HANA랑 다르다는 글이 공홈에 있던데.. 일단 그건 나중에 알아보자.

 

원래 오라클에서 translate와 replace가 있다.

 

REPLACE 함수는 문자열 치환 함수인데 예시를 보자.

SELECT REPLACE('내가 그린 기린 그림은 긴 그림이고', '그', '1') FROM DUAL;

=> 내가 1린 기린 1림은 긴 1림이고

select replace('내가 그린 기린 그림은 긴 그림이고', '그기', '12') from dual;

=> 내가 그린 기린 그림은 긴 그림이고 

그기라는 문자열 전체를 비교함. 없으니까 변환 안 함.

 

TRANSLATE 함수는 문자열 한글자씩 치환한다.

SELECT REPLACE('내가 그린 기린 그림은 긴 그림이고', '기그', '12') FROM DUAL;

=> 내가 2린 1린 2림은 긴 2림이고

 


자 이제 S4 HANA에서는 어떻게 적용할까?

REPLACE

문자열 내에서 지정된 문자열의 모든 항목을 검색하고 지정된 다른 문자열로 바꿉니다.

SELECT REPLACE ('DOWNGRADE DOWNWARD','DOWN', 'UP') "replace" FROM DUMMY;

=> UPGRADE UPWARD 

down을 up으로 통째로 바뀌었다. 오라클의 replace 그대로다.

 

REPLACE_REGEXPR

문자열 정규식 패턴을 검색하고 대체 문자열을 사용해 대체된 정규식 패턴 중 하나 또는 모든 항목과 함께 문자열 반환

SELECT REPLACE_REGEXPR('([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})' IN '2014-04-01' 
WITH '\3/\2/\1' OCCURRENCE ALL) "replace_regexpr" FROM DUMMY;

=> 01/04/2014

 

이 함수를 사용해서 TRANSLATE와 비슷하게 사용하는 방법을 예시로 확인해 보자.

사실은 SAP HANA에는 TRANSLATE 기능이 없다고 한다 ㅋㅋ 

증거 : https://blogs.sap.com/2016/01/22/db2-to-hana-migration-db2-translate-function-achivement-in-sap-hana/

유사한 시나리오에 대해 정규식을 쓰라고 나와있다....

 

자세한 내용은 여기를 참고하세요!

REPLACE_REGEXPR Function (String) | SAP Help Portal

댓글