首先本地数据库所在系统必须能ping通远程数据库tnsping orcl70 后跟远程数据库在本地的服务名。
如果ping不通则要看远程数据库是否建立了侦听和tns,确定无误后本地建立服务名并测试一下就好了
在可以连通的情况下开始建立dblink
第一种用netca建立远程数据库的服务来创建
公共的dblink:
create public database link test Using 'orcl70'
drop public database link test
本地所有用户都可以通过这个dblink访问远程数据库
私有dblink:
create database link test connect to kuser identified by oracle Using 'orcl70'
删除是用上述用户登录后drop database link test
私有dblink只能指定的用户才能访问远程数据库
第二种是直接创建
create database link test connect to kuser identified by oracle using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl)
) )';
完成后在本地数据库查询的时候用select * from area_t@test即可访问远程数据库的area_t表。
在这里也可以用数据库的同义词来代替上述的远程表名
create synonym ldb for area_t@test
select * from ldb