반응형
데이터베이스에 다음과 같은 키('111,222,333,444,555')를 던져주고 row로 변환하여 다른 테이블과 join, insert 등의 작업을 할 때 사용한다.
SELECT REGEXP_SUBSTR('111,222,333,444,555','[^,]+', 1, LEVEL) FROM DUAL CONNECT BY INSTR('111,222,333,444,555', ',', 1, LEVEL - 1) > 0
다른 테이블의 테이터와 join 하여 insert를 할 때
INSERT INTO TB_ITEM_FILE ( ITEM_CD, FILE_ID, ) SELECT P_ITEM_CD, A.FILE_ID, FROM TB_COM_FILE_INFO A , ( SELECT REGEXP_SUBSTR('111,222,333,444,555','[^,]+', 1, LEVEL) AS FILE_ID FROM DUAL CONNECT BY INSTR('111,222,333,444,555', ',', 1, LEVEL - 1) > 0 ) B WHERE A.FILE_ID = B.FILE_ID;
키로 사용하여 조회할 때
SELECT A.CENT_CD , A.CENT_NM , B.CLS_MTH , B.NST_CNT FROM TB_CENT A , TB_CLS B , ( SELECT REGEXP_SUBSTR('1,2,3,4,5,6,7,44,56','[^,]+', 1, LEVEL) AS CENT_CD FROM DUAL CONNECT BY INSTR('1,2,3,4,5,6,7,44,56', ',', 1, LEVEL - 1) > 0 ) C WHERE A.CENT_CD = B.CENT_CD AND A.CENT_CD = C.CENT_CD AND A.USE_YN = 'Y' AND B.CLS_MTH = '201308' ORDER BY A.SEQ
반응형
'Oracle' 카테고리의 다른 글
특정구분자로 구성된 문자열을 ROW로 변환하기(SPLIT) 2 (0) | 2016.03.03 |
---|---|
[Query] FOR LOOP (0) | 2016.01.08 |
CONNECT BY LEVEL, 순번을 딸 때 (0) | 2016.01.08 |
output변수 로 테이블 복수개 조회 (0) | 2015.12.04 |
파일이나 어셈블리 'Oracle.DataAccess' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 프로그램을 잘못된 형식으로 로드하려고 했습니다. (0) | 2015.10.22 |
댓글