방명록
- [Oracle] MERGE 문의 이해 및 활용2024년 07월 25일 22시 16분 08초에 업로드 된 글입니다.작성자: nickhealthy
- MERGE 문은 조건에 따라서 데이터의 삽입, 갱신, 삭제 작업을 한번에 할 수 있다.
- 해당 행이 존재하는 경우 UPDATE 또는 DELETE를 수행하고, 새로운 행일 경우 INSERT를 수행한다.
- 대상 테이블에 대한 UPDATE/INSERT 조건은 ON 절에 의해 결정된다.
- MERGE 문에서 CLOB 사용시 업데이트 할 내용이 2000bytes가 넘을 때 ORA-00600 오류가 발생하며,
MERGE Syntax
- INTO: DATA가 UPDATE 되거나 INSERT 될 테이블 또는 뷰를 지정
- USING: 비교할 SOURCE 테이블 또는 뷰나 서브쿼리를 지정, INTO 절의 테이블과 동일하거나 다를 수 있다.
- ON: UPDATE나 INSERT를 하게 될 조건으로, 해당 조건을 만족하는 DATA가 있으면 WHEN MATCHED 절을 실행하게 되고, 없으면 WHEN NOT MATCHED 이하를 실행하게 된다.
- WHEN MATCHED: ON 조건절이 TRUE인 ROW에 수행할 내용(UPDATE, DELETE가 포함될 수 있음)
- WHEN NOT MATCHED: ON 조건절에 맞는 ROW가 없을 때 수행할 내용(INSERT)
MERGE [ hint ] INTO [ schema. ] { table | view } [ t_alias ] USING { [ schema. ] { table | view } | subquery } [ t_alias ] ON ( condition ) WHEN MATCHED THEN UPDATE SET column = { expr | DEFAULT } [, column = { expr | DEFAULT } ]... [ DELETE where_clause ] WHEN NOT MATCHED THEN INSERT [ (column [, column ]...) ] VALUES ({ expr [, expr ]... | DEFAULT })
다음글이 없습니다.이전글이 없습니다.댓글