Database/Oracle
[Merge] 오라클 쿼리 Merge문
denodo
2014. 6. 4. 15:48
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
})
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
})
- - 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)