当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的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链接