创建 DB Link(数据库链接) 的方法取决于你使用的数据库类型。下面以最常见的几种数据库为例说明。
CREATE DATABASE LINK dblink_name
CONNECT TO remote_user IDENTIFIED BY remote_password
USING 'remote_tns_name';
示例:
CREATE DATABASE LINK db_link_to_prod
CONNECT TO scott IDENTIFIED BY tiger
USING 'ORCL_PROD';
CREATE PUBLIC DATABASE LINK dblink_name
CONNECT TO remote_user IDENTIFIED BY remote_password
USING 'remote_tns_name';
CREATE DATABASE LINK db_link_test
CONNECT TO user1 IDENTIFIED BY pwd1
USING '(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.10)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=orcl)))';
SELECT * FROM emp@db_link_to_prod;
MySQL 本身没有 Oracle 那样的 DB Link,常用 FEDERATED 存储引擎。
SHOW ENGINES;
CREATE TABLE local_table (
id INT(11) NOT NULL,
name VARCHAR(50)
)
ENGINE=FEDERATED
CONNECTION='mysql://user:pwd@192.168.1.20:3306/remote_db/remote_table';
注意:远程表结构需一致。
CREATE EXTENSION dblink;
SELECT *
FROM dblink('host=192.168.1.30 dbname=test user=pguser password=pgpwd',
'SELECT id, name FROM users')
AS t(id INT, name TEXT);
CREATE VIEW v_remote_users AS
SELECT * FROM dblink('conn_str', 'SELECT * FROM users')
AS t(id INT, name TEXT);
EXEC sp_addlinkedserver
@server = 'LINKED_SRV',
@srvproduct = '',
@provider = 'SQLNCLI',
@datasrc = '192.168.1.40';
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'LINKED_SRV',
@useself = 'false',
@rmtuser = 'sa',
@rmtpassword = 'password';
使用:
SELECT * FROM LINKED_SRV.remote_db.dbo.table_name;
CREATE DATABASE LINK 权限如果你能告诉我具体使用的是哪种数据库,我可以给你更精确的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。