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 -
카디널리티와 복합키 순서 그리고 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.24
댓글을 사용할 수 없습니다.