两台oracle数据库相互导数据
url:http://blog.csdn.net/lky5387/archive/2009/10/27/4734296.aspx
案例说明:
有A,B两台oracle数据库,都为10g,现在有一个A数据库中one表的几条数据要插入到B数据库中的one表?
在网上查阅了一下,可以通过在A上建立dblink,当然在B机上建立也是一样的。
打开sqlplus终端,或者任意的oracle客户端环境,执行以下SQL
create database link 链接名
connect to 用户名 identified by 密码
using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 要连接的IP)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = 数据库的SID) ))';
例如:
create database link idtsxxzsp
connect to sxxzsp identified by sxxzsp
using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 199.66.68.15)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = idt) ))';
建立连接之后,就可以通过(表名@链接名)访问对方(即任一端)的表。
例如
insert into designer_form1 select * from designer_form@idtsxxzsp //把远端的的designer_from表数据全部插入到现连接的数据库中的designer_form1表中 。
insert into designer_form@idtsxxzsp select * from designer_form where id in (893,892,999) //这个是把本地数据有选择的插入到远端数据库中。(支持大对象)
所以这种方法可以实现案例。对于不同版本的oracle数据库,一样适用。