레이블이 database인 게시물을 표시합니다. 모든 게시물 표시
레이블이 database인 게시물을 표시합니다. 모든 게시물 표시

Oracle - 데이터베이스 링크(Database Link)란

* 데이터베이스 링크는 클라이언트 또는 현재의 데이터베이스에서 네트워크상의 다른 데이터베이스에 접속하기 위한 접속 설정을 정의하는 오라클 객체이다.

* 오라클 INSTANCE가 두 개 이상이고, 각각의 HOST NAME과 ORACLE_SID는 다르고 NLS_CHARACTER_SET은 동일하게 되어 있어야 한다.

* 문법
Create [public] database link link_nm connect to username identified by password using service_nm

link_nm : 데이터베이스 링크의 이름
service_nm : 네트워크 접속에 사용할 오라클 데이터베이스 네트워크 서비스명을 지정
username, password : 오라클 사용자명과 비밀번호를 지정

Oracle - 한 쿼리로 INSERT 혹은 UPDATE 하기

* 테이블에 데이터 추가시 조건에 해당하는 값이 존재하면 해당 행을 UPDATE하고,
없으면 INSERT 하는 경우 사용


* 사용법
MERGE 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)