Oracle如何跨服务器访问

当要跨服务器访问数据库时,我们可以使用dblink建立连接服务器间的通道。

如果需要创建全局 DBLink,首先要确定用户有创建 dblink 的权限:

使用此语句查看:select * from user_sys_privs where privilege like upper('%DATABASE LINK%'); 

grant create  database link to 用户名    //给用户分配创建link权限

创建链接方法:

CREATE DATABASE LINK 链接名         
CONNECT TO  服务器用户名 IDENTIFIED BY 服务器密码
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 登录服务器ip地址)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 服务名)
)
)';

创建链接后可以通过下面语句查询:

select * from 表名@链接名

从远程服务器查询或者插入数据过程中有可能遇到问题:

发生原因:查询的表中有CLOB字段的数据

解决方法:

--创建临时表    
create table temp_test as select * from test@linkoracle where  id =: ID ;
--将远程数据插入到临时表中
insert into temp_test select * from test@linkoracle where id = : ID;
--将临时表数据插入到目标数据库表中
insert into test select * from test_temp; --提交 commit; --查询 select * from test_temp;
原文地址:https://www.cnblogs.com/peachfly/p/14132500.html