-
오라클 명령어(문자 관련)수상한 프로그래머/오라클(Oracle) 2019. 4. 10. 12:28반응형
■ 특정문자, 특정문자 앞쪽값, 특정문자 뒷편값 갖고오기
SELECT '123-456',SUBSTR('123-456',1,INSTR('123-456','-')-1),reverse(substr(reverse('123-456'), 1, instr(reverse('123-456'), '-') - 1)) FROM dual;
결과 : 123-456, 123, 456
해당 구문의 문제는 중간에 특정문자가 2개 들어있는 경우 해당 문자의 제일 첫번째 단락과 제일 끝 단락을 갖고온다.
예를 들어 123-456-789를 위 구문에 적용시
결과는 : 123-456-789, 123, 789가 된다.
■ 특정문자의 갯수 알아오기SELECT length('123-456-789') - length(replace('123-456-789', '-', '')) CHAR_COUNT
FROM dual;
■ instr 함수정의 : 찾고자하는 문자열의 인덱스를 리턴한다.
- instr(검색대상문자열 , 찾고자하는문자열 , 검색대상문자열의찾기를시작할인덱스 [, 몇번째발견한것인지선언] )
ex) INSTR(MSG, '|', 2, 3) 을 실행 하면
3번째 파라미터의 의미는 MSG문자열의 2번째 인덱스 부터(예를들어 MSG문자열이 ='1234567'
라고 가정하면 '234567' 을 대상) 검색 하라는 뜻이다.
, 4번째 파라미터의 의미는 찾고자하는 문자열 '|' 이 검색대상중에 여러번 존재할때 선언한 번째의 인덱스를
리턴하라는 의미이다.
■ 오라클 쿼리 DB 개행 문자
|| chr(13) || chr(10) ||
■ 원하는 글자부터 뽑아오기
SUBSTR(A.SHIPPING_MARK, 1, INSTR(A.SHIPPING_MARK, CHR(10), 1, 13)-2)
SUBSTR(A.SHIPPING_MARK, INSTR(A.SHIPPING_MARK, CHR(10), 1, 13)+1) 부터 끝까지다
반응형'수상한 프로그래머 > 오라클(Oracle)' 카테고리의 다른 글
오라클 DB에서 실수로 데이터를 지웠을때 복구 방법 (0) 2020.02.11 오라클 base64 암호화 및 복호화 (0) 2019.04.10 lock 걸린 테이블 락 테이블 풀기 (0) 2019.04.10 오라클 System의 Resource에 대한 사용현황 (0) 2019.04.10 댓글