实现:
将远程数据库1中的表1数据写入到远程数据库2中的表2。
第一步:创建服务名
需要安装Oracle服务器(即本地可以安装数据库)红色部分很重要
方法一:
修改Oracle安装目录下的.\product\10.2.0\db_1\network\ADMIN\tnsnames.ora文件
方法二:
使用Oracle自带的Net Manager工具(以此方法为例)
选择Oracle Net配置-本地-服务命名,单击+号,创建服务名
输入远程Oracle数据库对应的服务名
选择TCP/IP协议
输入远程Oracle数据库的IP地址和端口号
输入远程数据库的实例名
创建完成后,点击文件,进行保存。
此处需要创建两个服务名:
远程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
Drop
database
link MYDBLINK1;
--查看database link
select
*
from
user_db_links;
--用户
select
*
from
dba_db_links;
--dba
select
*
from
v$dblink;
--当前
--为远程Oracle服务器中的表创建同义词,同义词当做本地表来使用
create
synonym Ora1Table1
for
TABLE1@MYDBLINK1;
--删除同义词
drop
synonymOra1Table1;