在Oracle里面,远程数据访问,像查询、更新等可以通过Database Link来实现。数据库连接需要在建立Database Link的两台机子上都运行Oracle Net(以前叫SQL*NET 和NET 8)。
语法如下
1 Database Link 的创建:
有两个数据库服务器A/B, 其中A的IP地址为172.20.36.245, 服务器B为本机。服务器B上的数据库实例名为ORCL,在本机上的服务监听配置上有服务器A上实例配置:
BIWG_TEST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.36.245)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = biwg) ) )
实例BIWG_TEST的账号为 WGODS 、 密码为WGODS。下面开始在本机上创建DB Links
方法1:
CREATE PUBLIC DATABASE LINK WGODS.ORACLE.COM CONNECT TO WGODS IDENTIFIED BY WGODS USING 'BIWG'
CREATE [PUBLIC] DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING '本地配置的数据的实例名';
[public]的意思是:public是全局db link,即该数据库上所有用户都能查询,要sys或者system用户来创建(当然有sysdba权限的用户也可以的);如果不使用public就是私有db link,只有创建该db link的用户能查询
查看连接是否成功
SELECT * FROM DUAL@WGODS.ORACLE.COM SELECT * FROM REF.TR_WGG_GDAREA_INFO@WGODS.ORACLE.COM
方法2:可以不配置服务。
CREATE PUBLIC DATABASE LINK REMOTE_DEVE_HOST CONNECT TO WGODS IDENTIFIED BY WGODS USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.36.245)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = biwg) ) )'
不建议使用这个实现。感觉没有上面方法来的方便
查看连接是否成功
SELECT * FROM DUAL@WGODS.ORACLE.COM SELECT * FROM REF.TR_WGG_GDAREA_INFO@WGODS.ORACLE.COM