MSSQL에서는 OPENQUERY를 사용하여 다른 DB의 접근과 사용이 가능하다.
즉, 다른 DB 서버에서 MSSQL 뿐만 아니라 MySQL, Oracle 등 원하는 DB를 제어할 수 있다.
- OPENQUERY의 기본적인 문법
OPENQUERY ([서버이름], 'SELECT [컬럼명] FROM [테이블명]');
ex) OPENQUERY(SH_ORACLE, 'SELECT ID, PW FROM TBL_MEMBER)
- OPENQUERY에 오라클 MEMBER 테이블에서 가져온 데이터가 담기게 된다.
- OPENQUERY 데이터 조회
SELECT [컬럼명] FROM OPENQUERY ([서버이름], 'SELECT [컬럼명] FROM [테이블명]');
ex) SELECT ID, PW FROM OPENQUERY(SH_ORACLE, 'SELECT ID, PW FROM TBL_MEMBER)
- 흔히 사용하는 서브쿼리랑 비슷하다고 생각하면 된다. 이 SQL은 실행 시 오라클에서 가져온 MEMBER의 ID와 PW를 보여준다.
- OPENQUERY 데이터 입력, 수정, 삭제
INSERT INTO OPENQUERY ([서버이름], 'SELECT [컬럼명] FROM [테이블명]') VALUES ('[값]');
UPDATE OPENQUERY([서버이름], 'SELECT [컬럼명] FROM [테이블명] WHERE [조건절]') SET [컬럼명] = '[값]';
DELETE OPENQUERY ([서버이름], 'SELECT [컬럼명] FROM [테이블명] WHERE [조건절]');
ex) INSERT INTO OPENQUERY(SH_ORACLE, 'SELECT ID, PW FROM TBL_MEMBER) VALUES('user123', 'aaa123')
- 실행 시 오라클의 MEMBER 테이블에 id: user123, pw: aaa123의 Row가 저장된다.
필요 시 상황에 맞게 변경해서 사용하면 될 듯 하다.
OPENQUERY를 찾아보다가 발견한 성능 이슈 해결 방법이 잘 소개되어있는 것 같다,
http://www.dator.co.kr/hjkim/91461
튜닝-MSSQL OPENQUERY을 이용한 경우
추천 스크랩 URL복사 MSSQL을 튜닝하다가 보면...
www.dator.co.kr
'DB > RDBMS' 카테고리의 다른 글
[MSSQL] OPENQUERY 대용량 DML 작업 시 문제점 (0) | 2020.04.22 |
---|---|
[MSSQL] OPENQUERY에 변수 사용 시 문제점 및 해결방법 (0) | 2020.04.14 |
[MSSQL] IF-ESLE (0) | 2020.04.10 |
[MSSQL] DECLARE 변수 선언 (0) | 2020.04.10 |
SQL 기초 (0) | 2020.03.23 |