Oracle跨数据库操作

实现:

远程数据库1中的表1数据写入远程数据库2中的表2


第一步:创建服务名

需要安装Oracle服务器(即本地可以安装数据库红色部分很重要

方法一:

修改Oracle安装目录下的.\product\10.2.0\db_1\network\ADMIN\tnsnames.ora文件

方法二:

使用Oracle自带的Net Manager工具(以此方法为例)

Oracle跨数据库操作_第1张图片

选择Oracle Net配置-本地-服务命名,单击+号,创建服务名

Oracle跨数据库操作_第2张图片

输入远程Oracle数据库对应的服务名

Oracle跨数据库操作_第3张图片

选择TCP/IP协议

Oracle跨数据库操作_第4张图片

输入远程Oracle数据库的IP地址和端口号

Oracle跨数据库操作_第5张图片

输入远程数据库的实例名

Oracle跨数据库操作_第6张图片

创建完成后,点击文件,进行保存

此处需要创建两个服务名:

远程Oracle数据库1,对应服务名为:MYORACLE1

远程Oracle数据库2,对应服务名为:MYORACLE2


第二步:创建database link

使用sysdba权限登录本地数据库(登录名可以使用system)

使用如下命令来创建database link

create public database link databaselink名称
connect to 登录名1 identified by 密码1
using '第一步中创建的服务名';
此处需要创建两个database link:

create public database link MYDBLINK1
connect to 登录名1 identified by 密码1
using 'MYORACLE1';
create public database link MYDBLINK2
connect to 登录名2 identified by 密码2
using 'MYORACLE2';

第三步:执行跨数据库操作的Sql语句

注:需要在本地数据库中执行,原因:database link是在本地数据库中创建的。

实例SQL:

insert into TABLE1@MYDBLINK1 select * from TABLE2@MYDBLINK2 where rownum<=10;


【备注】:

--删除database link

Dropdatabaselink MYDBLINK1;

--查看database link

select*fromuser_db_links;--用户

select*fromdba_db_links; --dba

select*fromv$dblink;     --当前

--为远程Oracle服务器中的表创建同义词,同义词当做本地表来使用

createsynonym Ora1Table1 forTABLE1@MYDBLINK1;

--删除同义词

dropsynonymOra1Table1;




你可能感兴趣的:(Oracle)