无痕客

落花无情,流水无痕……

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

两台oracle数据库相互导数据

案例说明:

    有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数据库,一样适用。

 

转载自:

http://blog.csdn.net/jackpk/archive/2010/09/09/5873000.aspx

http://blog.csdn.net/lky5387/archive/2009/10/27/4734296.aspx

 

posted on 2011-04-26 22:18  无痕客  阅读(1267)  评论(0编辑  收藏  举报