MySQL 의 REPLACE INTO 와 같은 기능.
세션을 디비에 저장하여 활용할 경우 사용.
1. 테이블 구조
CREATE TABLE TB_SESS
(
SESSION_ID VARCHAR2(50 BYTE) NOT NULL
, SESSION_EXPIRES DATE
, SESSION_DATA VARCHAR2(1000 BYTE)
)
1. 동일 테이블에서 사용하는 경우
MERGE INTO TB_SESS
USING DUAL
ON (SESSION_ID = '1234567890')
WHEN MATCHED THEN
UPDATE SET
SESSION_EXPIRES = SYSDATE,
SESSION_DATA = '테스트 데이터'
WHEN NOT MATCHED THEN
INSERT (SESSION_ID, SESSION_EXPIRES, SESSION_DATA )
VALUES ('1234567890', SYSDATE, '테스트 데이터');
TB_SESS 테이블의 SESSION_ID 를 키값으로 하여
테이블에 값이 있으면 업데이트 하고
없으면 새로 인서트 한다.
2. 다른 테이블과 비교하여 사용할 경우
MERGE INTO TB_SESS A
USING 테이블 B
ON (A.SESSION_ID = '1234567890')
WHEN MATCHED THEN
UPDATE SET
A.SESSION_EXPIRES = A.SESSION_EXPIRES,
A.SESSION_DATA = B.SESSION_DATA
WHEN NOT MATCHED THEN
INSERT (A.SESSION_ID, A.SESSION_EXPIRES, A.SESSION_DATA )
VALUES (B.SESSION_ID, B.SESSION_EXPIRES, B.SESSION_DATA);
끝.
'ORACLE' 카테고리의 다른 글
오라클 사용자 테이블 일괄 삭제 (0) | 2020.10.15 |
---|---|
Error : ORA-00911: invalid character (0) | 2019.01.08 |
호스트네임변경 후 “ORA-24454: client host name is not set” 에러 발생할 때 (0) | 2019.01.08 |
오라클 create table with comment 기본 (0) | 2019.01.08 |
오라클 테이블 CONSTRAINT (0) | 2019.01.08 |