当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink。通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。

创建dblink
create database link TestDblink
 connect to dbName identified by dbPassword
  using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.230.200)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = invdbs)))';
  • TestDblink : 表示dblink名字
  • dbName :表示 远程数据库的用户
  • dbPassword:表示 远程数据库的密码
  • HOST : 表示远程数据库IP
  • PORT : 表示远程数据库端口
  • SERVICE_NAME : 远程数据库的实例名

查询、删除及插入数据操作与本地数据库一致,只需”table@dblink名字”即可。

select * from tables@testdblink;
删除数据库连接
drop database link testdblink;
查询创建的dblink
select * from user_db_links; -- 用户创建的db_link
select * from all_db_links; -- 所有的db_link
select * from dba_db_links; -- dba的db_link
查看所有的数据库链接,登录管理员查看(待验证)
select owner,object_name from dba_objects where object_type='DATABASE LINK';
报错内容
dblink不存在

ORA-02019: connection description for remote database not found

解决方式: 创建dblink

当前dblink状态不是public也非当前用户所有,故无法使用该dblink链接

该文章采用「CC 协议」,转载必须注明作者和本文链接.
分类: Oracle