본문 바로가기
  • [성공하는 개발자] - Developer
728x90

DataBase/Oracle9

[Oracle] 오라클 MERGE INTO 사용법 & 노하우 정리 오라클에서 쿼리문을 작성하다 보면, 하나의 쿼리문으로 INSERT, UPDATE, DELETE 작업을 해야 하는 경우가 있다. 이럴 때에는 MERGE 문을 사용하면 간단하게 쿼리문을 작성할 수 있다. 오라클 9i부터 MERGE 문을 사용할 수 있으며, DELETE 절은 10g부터 사용할 수 있다. 오라클 MERGE 문 ■ 단일 테이블 사용법 (DUAL) MERGE INTO emp a USING dual ON (a.empno = 7788) WHEN MATCHED THEN UPDATE SET a.deptno = 20 WHEN NOT MATCHED THEN INSERT (a.empno, a.ename, a.deptno) VALUES (7788, 'SCOTT', 20); 단일(자신의) 테이블에 MERGE 문은 .. 2022. 11. 1.
[Oracle] 문자열 구분자 행 분리 오라클 쿼리에서 칼럼에 구분자로 입력된 값을 행으로 분리(Split)하여 조회해야 할 상황이 종종 발생한다. 대부분 값을 조회하여 프로그래밍 코드에서 구분자를 분리하는 작업을 한다. 그러나 쿼리에서 미리 행으로 분리해야 하는 경우도 발생하므로 아래의 예제를 참고하면 된다. 부하가 많이 발생할 수 있으므로 데이터가 많은 경우는 권장하지 않는다. 예제 1 - Oracle 10g 이상 (정규식 함수 사용) SELECT REGEXP_SUBSTR(a.langList, '[^|]+', 1, LEVEL) AS split_result FROM (SELECT 'Java|Kotlin|Python|Swift' AS langList FROM dual) a CONNECT BY LEVEL 2022. 5. 24.
[Oracle] 오늘을 기준으로 해당 주(week)의 모든 일자 조회 오늘이 속한 주의 월요일부터 일요일까지 일자가 필요할때가 있다 select to_char(a.s_date, 'yyyy-mm-dd') monday , to_char(a.s_date+1, 'yyyy-mm-dd') tuesday , to_char(a.s_date+2, 'yyyy-mm-dd') wednesday , to_char(a.s_date+3, 'yyyy-mm-dd') thursday , to_char(a.s_date+4, 'yyyy-mm-dd') friday , to_char(a.s_date+5, 'yyyy-mm-dd') saturday , to_char(a.s_date+6, 'yyyy-mm-dd') sunday from ( select sysdate - (to_number(to_char(sysdate,.. 2022. 5. 24.
728x90