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);


 

 

 

 

끝.

블로그 이미지

엘로드넷

댓글을 달아 주세요