介绍
创建dblink实现跨库查询,创建本地数据库对远端数据库的dblink后,就可以像操作本地数据库一样操作远端数据库,这是Oracle给我们提供一个功能,让我们的跨库查询变得非常简单便捷。
使用
1.查看用户是否有创建dblink的权限(一般管理员用户SYS都有权限)
select * from user_sys_privs t where t.privilege like upper('%link%');
2. 如果创建全局 dblink,必须使用 systm 或 sys 用户,在 database 前加 public。
CREATE PUBLIC DATABASE LINK 数据库链名称 CONNECT TO 登录用户名 IDENTIFIED BY 密码 USING '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 对方Oracle服务器的IP地址)(PORT = 端口号))
(CONNECT_DATA =
(SERVICE_NAME = 对方Oracle服务器服务名)
)
)' ;
注:数据库链名称指添加到本地Oracle数据库控制台(Oracle Enterprise Manager Console)树节点的服务名
3、要查询对方数据库的表TableName语句如下:
SELECT 字段名 FROM TableName@数据链名称;
如:select * from ndn_gg_code@dblink;
4、删除DBLINK
DROP DATABASE LINK [name];
或
DROP PUBLIC DATABASE LINK [name];
实操
第一步:命令行创建,建立链接
CREATE database link A CONNECT to ndncnooc01 IDENTIFIED by "E0oOv0s#i$I1Ld" using '(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = 10.*.*.*)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ndnqas)))';
使用plsql创建数据库连接
第二步:查询创建的连接
SELECT * FROM DBA_DB_LINKS;
第三步:操作数据表
查询数据
SELECT * FROM BASE_CO_0821@A;
复制表
create table BASE_CO_0821 as select * from A.BASE_CO_0821@A;//复制表结构以及数据
create table BASE_CO_0821 as select * from BASE_CO_0821@A where 1=2;//复制表结构
第四步:删除连接:
DROP DATABASE LINK A;
标签:CO,数据库,0821,dblink,BASE,干货,Oracle
From: https://blog.csdn.net/xdmxmf0/article/details/145026992