본문 바로가기

오라클7

오라클 연속된 날짜 레코드 생성하기( EXTRACT, LEVEL 활용법 ) CONNECT BY LEVEL과 EXTRACT를 사용하여 현재 월의 모든 날짜 레코드를 생성한다. EXTRACT 먼저 현재 월의 마지막 날짜의 DAY를 구한다. SELECT EXTRACT(DAY FROM LAST_DAY(CURRENT_DATE)) AS END_OF_DAY FROM DUAL; END_OF_DAY| ----------+ 31| CONNECT BY LEVEL CONNECT BY LEVEL을 활용하여 연속된 레코드를 생성한다. SELECT LEVEL FROM DUAL CONNECT BY LEVEL = EXTRACT(DAY FROM CURRENT_DATE) CONNECT BY LEVEL 2022. 1. 28.
오라클 계층형 쿼리, 트리구조로 살펴보기(정렬, 최하위노드 찾기) 위 부서 정보와 같은 구조를 우리는 트리형태로 표현할 수 있다. 부서정보뿐만 아니라 디렉토리구조, HTML태그 구조등이 모두 상하관계를 갖는 트리형태로 표현될 수 있다. 이처럼 상하관계, 계층구조를 갖는 데이터베이스 정보를 오라클에서 어떻게 표현하는지 알아보자. 오라클은 CONNECT BY 절을 사용하여 계층형 데이터를 표현할 수 있다. 아래 샘플을 보자. WITH DEPT AS ( SELECT '0000' DEPT_CD, 'ROOT' PARENT_DEPT_CD, 'ROOT_DEPT' DEPT_NM FROM DUAL UNION ALL SELECT '1000' DEPT_CD, '0000' PARENT_DEPT_CD, '임원실' DEPT_NM FROM DUAL UNION ALL SELECT '1001', '.. 2022. 1. 26.
오라클 replace 여러개(문자) 치환하기( regexp_replace 사용 ) 1. 한 행에 여러개 문자 치환 # replace 반복(비효율적) SELECT REPLACE(replace('java apple python banana', 'apple', 'fruit'), 'banana', 'fruit') FROM dual; # regexp_replace 사용 SELECT regexp_replace('java apple python banana', 'apple|banana', 'fruit') FROM dual; 2. 컬럼에 여러개 문자 치환 다음과 같은 값이 있다고 가정하자. 언더바 뒤의 숫자만 활용하기 위해 숫자 앞의 값은 삭제하려 한다. WITH TEMP AS ( SELECT 'A_14' AS C FROM DUAL UNION ALL SELECT 'B_4' AS C FROM DUAL.. 2022. 1. 25.