Oracle instr 함수로 문자열 자르기
반응형
Oracle instr 함수는 문자열(텍스트)에서 특정 문자의 위치를 리턴해주는 함수입니다.
instr 함수와 substr 함수를 함께 사용하여 특정 문자를 기준으로 텍스트를 파싱하여 가져올 수 있습니다.
아래와 같이 '|' 기호로 구분되어 있는 문자열이 있을 때, '|' 기호의 위치를 찾아 substr 함수를 이용하면 내용별로 잘라올 수 있겠죠.
1 2 | SELECT 'Start|안녕,|반가워!|End' FROM dual | cs |
이제 '|' 기준으로 문자열을 잘라서 가져와봅시다.
1 2 3 4 5 6 7 8 9 | SELECT 내용 , SUBSTR(내용, 1, INSTR(내용, '|', 1, 1) - 1) AS a , SUBSTR(내용, 1, INSTR(내용, '|', 1, 1) + 1, INSTR(내용, '|', 1, 2) - INSTR(내용, '|', 1, 1) - 1) AS b , SUBSTR(내용, 1, INSTR(내용, '|', 1, 2) + 1, INSTR(내용, '|', 1, 3) - INSTR(내용, '|', 1, 2) - 1) AS c , SUBSTR(내용, 1, INSTR(내용, '|', 1, 3) + 1) AS d FROM (SELECT 'Start|안녕,|반가워!|End' AS "내용" FROM dual) | cs |
위 쿼리를 실행하면 아래와 같은 결과값이 나옵니다.
내용 |
a |
b |
c |
d |
Start|안녕,|반가워!|End |
Start |
안녕, |
반가워! |
End |
인터페이스 전문 송/수신 혹은 배치에서 대량에 데이터를 파일로 읽고 쓸 때 처리 속도와 성능을 위해서 전문 데이터를 가볍게?.. 만들어서 송/수신 혹은 입/출력에 사용합니다.
원부에서는 각각의 컬럼으로 데이터를 관리하지만, 종종 전송이력 혹은 파일 이력을 관리하는 테이블에는 저런 형식의 전문데이터가 통으로 들어가있는 경우가 있습니다.
인터페이스 이력 결과 데이터에서 역으로 프로그램을 찾아갈 때, 가독성있게 표시해서 데이터의 의미를 파악하기 위해 사용했던 쿼리였습니다.
반응형
'데이터 관리 > Database' 카테고리의 다른 글
DBCP(Database Connection Pool) 이해 (0) | 2021.04.07 |
---|---|
Mac OS 오라클 설치하기 (0) | 2021.02.28 |
카디널리티와 복합키 순서 그리고 PK Index (1) | 2020.10.12 |
ORACLE SQL paging 처리 (0) | 2017.03.21 |
Oracle CLOB 컬럼 Select 시 주의사항 (ORA-06502) (4) | 2017.01.24 |
댓글
이 글 공유하기
다른 글
-
Mac OS 오라클 설치하기
Mac OS 오라클 설치하기
2021.02.28간단 요약 (모든 설치파일은 오라클 공홈 다운 가능) JDK 8 이상 설치 Oracle VM Virtual Box 다운로드 Oracle DB Developer VM 다운로드 및 실행(Oracle 접속) Virtual Box 접속 후 Oracle VM 실행(power off 상태) 맥북에서 oracle sql developer tool 설치 후 접속 발생한 에러 Mac에서 설치 시 DB connection 시 Locale 문제로 연결되지 않는 이슈 Mac Locale not recoginized 블로그를 통해 해결 설치 참고 문서 추천문서 : 공식문서보다 친절하며 다음스텝까지 안내되어 있음 공식문서 : 최소 요구 사양, 최신 정보 확인은 공식문서를 참고하는 것을 추천 -
카디널리티와 복합키 순서 그리고 PK Index
카디널리티와 복합키 순서 그리고 PK Index
2020.10.12PK 복합키 순서에 따라 인덱스가 타지 않을 수 있다! JPA는 복합키를 생성할 때 컬럼명의 알파벳 순으로 생성한다. Entity Class에 정의된 순서로 생성되는 게 아니기 때문에 조회할 때 기대했던 PK Index가 타지 않을 가능성이 높다. 먼저 PK index 실행 조건에 대해 알아보겠다. PK 인덱스 실행 조건 (MySQL/Oracle) DB에 테이블을 생성할 때 PK Key 들에 대해서 자동으로 Index를 생성해준다. 이를 PK 인덱스라고 한다. 생성된 PK 순서대로 PK Index가 적용되기 때문에 큰 범위에서 작은 범위의 컬럼으로 나열하는 것이 좋다. 아래와 같은 테이블이 있을 때, 조회 조건에 어떤 PK컬럼을 매핑하느냐에 따라 옵티마이저가 PK Index를 탈지 말지 결정한다. PK … -
ORACLE SQL paging 처리
ORACLE SQL paging 처리
2017.03.21Select outer_paging_tbl.* From ( Select rownum as paging_seq , inner_paging_tbl.* From ( 쿼리쿼리쿼리 ) inner_paging_tbl.* Where rownum = (:request_page-1) * (:row_cnt)+1 -
Oracle CLOB 컬럼 Select 시 주의사항 (ORA-06502)
Oracle CLOB 컬럼 Select 시 주의사항 (ORA-06502)
2017.01.24Oracle CLOB 컬럼은 Oracle 버전 10g 이후로 지원되는 LOB 타입의 종류 중 하나로, 문자열이나 이미지 데이터를 4GB까지 저장할 수 있습니다.어느 날 화면에서 처리한 데이터가 DB에 정상적으로 들어가있는지 확인하기 위해 Orange에서 CLOB 컬럼을 조회해봤습니다.서비스 Log나 화면 IO를 보면 데이터를 정상적으로 DB에 넣는 것 처럼 보이는데, Orange에서 Select로 조회해보면 일부가 깨져서 보이거나 데이터가 잘리는 현상이 있었습니다. [현상]입력한 값 : 안녕하세요? 테스트 데이터입니다.Orange에서 조회한 CLOB 컬럼의 값 : 안녕하세요? 테스트 [원인]프로그램 오류라 생각하고 몇 시간 동안 로그도 뒤져보고, 비슷한 유형의 다른 프로그램도 테스트해보고 하다가 원인을 …
댓글을 사용할 수 없습니다.