
내 데이터베이스에서 다른 데이터베이스에 접속할 수 있는 링크를 말한다.
네트워크상의 다른 데이터베이스에 접속하기 위한 접속 설정을 정의하는 오라클 객체이다.
다른 DB에 특정 유저에 대한 링크를 만들어 해당 스키마에 테이블들을 접근하는 기술이다
우선, 원격 서버의 tns 정보와 접속 유저의 정보를 가지고 있어야 한다.
여기서 코드를 간결하고 편하게 제작하고 싶으면 tns 파일에 별칭을 부여해 들고올 수 있다.
쉽게 말하자면 'A' DB에서 'B' DB로 DB Link 를 걸고자 한다면 우선 'A' DB의 TNSNAMES.ORA파일에 'B' DB 접속정보를 추가하는 것이다.
아래의 사진처럼 TNSNAMES.ORA파일에 별칭을 부여해서 접속정보를 넣고 사용할 수 있다.

--풀 버전
CREATE DATABASE LINK [DBLINK이름]
CONNECT TO 원격유저명 IDENTIFIED BY "비밀번호"
USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = [포트번호])))
(CONNECT_DATA = ( sid = [sid] )(service_name = [service_name])))';
--별칭 버전
CREATE DATABASE LINK [DBLINK이름]
CONNECT TO 원격유저명 IDENTIFIED BY "비밀번호"
USING 'sung';
SELECT * FROM [테이블 명]@[DBLINK이름];
INSERT INTO [테이블 명]@[DBLINK이름]
(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
VALUES(99999999, '심청이', NULL, NULL, NULL, NULL, NULL, NULL);
사진처럼 12154번 오류가 발생했다.
TNSNAMES.ORA 파일의 별칭을 설정할 때 맨 앞에 공백을 추가해서 오라클이 인식을 못 해 발생한 오류였다.
