?????
로 나타납니다.CREATE DATABASE LINK <dblink_name>
CONNECT TO <remote_username> IDENTIFIED BY <remote_user_password>
USING <remote_database>;
dblink_name
: db link 객체의 이름remote_username
: 원격 target DB의 usernameremote_user_password
: 원격 target DB의 user passwordremote_database
: 원격 target DB의 TNS Alias로 tnsnames.ora
에 등록되어 있어야 합니다.예시
CREATE DATABASE LINK sales
CONNECT TO bob IDENTIFIED BY Abcd1234
USING 'SALES';
====== tnsnames.ora =====
SALES =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.50.100.143)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = SALES_PRD)
)
)
=========================
-- 데이터베이스 링크를 통한 데이터의 조회
SELECT ename FROM <remote_db_table_name>@<dblink_object_name>;
SELECT * FROM customers@sales;;
INSERT INTO customers@sales(customer_id, name, email)
VALUES(2,'XYZ Inc','contact@xyzinc.com');
SELECT * FROM customers@sales
--시노님을 생성해서 사용하면 더욱더 편리하게 사용 할 수 있습니다.
CREATE SYNONYM custlink FOR customers@sales;
SELECT * FROM custlink;
-- 데이터베이스 링크의 삭제
DROP DATABASE LINK sales;
tnsnames.ora
파일에 Connect String을 적어주는 대신 USING
뒤에 직접 적어줄 수도 있습니다.
SQL> CREATE DATABASE LINK <dblink_name>
2 CONNECT TO <remote_username> IDENTIFIED BY <remote_user_password>
3 USING '(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=oracledb.example.com)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service_name))
)';
참고
Is there any way to make it easier for me and fnaf security breach to remember these formulas?