Database/Oracle2009. 3. 24. 17:00

일하다가 사용하게된 오라클 함수 응용...



특정 필드의 값이 일정 길이를 넘지 않도록 하는 쿼리(넘을경우 "..." 처리)

1.//
2.// ex) txt_memo 필드가 30바이트를 넘어갈 경우 "..." 처리
3.//
4.DECODE(SIGN(30-LENGTHB(txt_memo)), -1, SUBSTRB(txt_memo, 1, 27) || '...', txt_memo)
5.//

주의 : 한글과 같은 2바이트 문자가 끼어있는 경우 SUBSTRB 같은 함수에서 문제가 발생할 수 있음



특정 필드의 값에서 특정 구분자가 있을 경우 구분자부터 잘라 버리기
1.//
2.// ex) txt_memo 필드에 "-"가 있을 경우 구분자부터 이후는 잘라 버리기
3.//
4.DECODE(INSTRB(txt_memo, '-'), 0, txt_memo, SUBSTRB(txt_memo, 1, INSTRB(txt_memo, '-')-1))
5.//
Posted by Huikyun