Database/Oracle2009. 3. 24. 17:00

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



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

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

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



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