之前我发过一个帖,虽然有一些提示,但我还是成功不了,所以这次出高分求解.环境
-------------------------------------------------------------
若A电脑配置为:
OS:Ubuntu Server 8.04.1
IP:192.168.0.2
Computer Name:Prod
Oracle SSID:XE
SYS Password: dbpw B电脑配置为:
OS:win2k3
IP:192.168.0.3
Computer Name:Test
Oracle SSID:XE
SYS Password: dbpw -------------------------------------------------------------
要求:
从B电脑上的Oracle Xe复制某些表的记录到A电脑的Oracle XE中.若我提供的信息不够清楚,请提示.
-------------------------------------------------------------
若A电脑配置为:
OS:Ubuntu Server 8.04.1
IP:192.168.0.2
Computer Name:Prod
Oracle SSID:XE
SYS Password: dbpw B电脑配置为:
OS:win2k3
IP:192.168.0.3
Computer Name:Test
Oracle SSID:XE
SYS Password: dbpw -------------------------------------------------------------
要求:
从B电脑上的Oracle Xe复制某些表的记录到A电脑的Oracle XE中.若我提供的信息不够清楚,请提示.
然后
insert into 目标表
select 数据
from 源表@dblink
a电脑的oracle用户执行(需要修改对于要copy数据的用户名和密码):
SQL> copy from user/pw@B_XE to user/pw@A_XE append tableName using select * from tableName;
thx
我这里的修改数据类型为 replace,而我查看了 sql 21日通,好像没发现这条命令.
我修改tnsnames.ora也不会 :(以下是B电脑上的tnsnames.ora
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Test)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)...而我发现A电脑上的tnsnames.ora也是一样的XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Prod)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)...那我要如何修改呢?
B_XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Test)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)A_XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Prod)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)注:
copy from user/pw@B_XE to user/pw@A_XE append tableName using select * from tableName; 中的append可以使用insert,create,replace
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3
)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)或者B=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = TEST)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)明显两段有区别的嘛