数据库a中的表复制到不同服务器上数据库b中,如何操作?

时间:2022-09-14 20:55:31
数据库a和b都不是本地数据库,现在想要数据库a中的表table1的某些字段复制到另一服务器上的数据库b中,怎么操作?
Dim connstr     As String
Dim conn     As New ADODB.Connection
Dim rs     As New ADODB.Recordset
connstr = "Provider=MSDAORA.1;User ID=1;Password=1;Data Source=ora1;Persist Security Info=False"
conn.Open connstr
rs.CursorLocation = adUseClient
rs.Open "select jh,wj,kgrq,xjrq,tgxs  from  table1", conn, adOpenKeyset, adLockPessimistic
    
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=MSDAORA.1;User ID=2;Password=2;Data Source=ora32;Persist Security Info=False"
cn.ConnectionTimeout = 30
cn.Open
cn.Execute "insert into table2 select jh,wj,kgrq,xjrq,tgxs from table1"

用上面的代码已经成功建立连接,但是插入过程提示无此表名,
用cn.Execute "insert into table2 select jh,wj,kgrq,xjrq,tgxs from OPENDATASOURCE('MSDAORA.1','Data Source=ora1;User ID=1;Password=1').ora1.dbo.table1" 提示:SQL command not properly ended.

请教各位如何解决?最好能给出代码例子!

5 个解决方案

#1


用DBLink在后台做比较省事

#2


楼上能具体说一下吗?这个功能以后要集成到软件中,所以需要用代码实现!

#3


1楼说的其实最简单.用DBLINK把两个数据库连接起来. 然后用SQL解决..或者你如果想实时的数据传输的话.
你可以再写一个触发器.(可以GOOGLE一下,例子很多)
如果你用程序写的话.我这只提供思路..本人开发过.
建立DBLINK. 然后分别打开两个数据库,通过在程序里写SQL执行.最后COMMIT.完了.
如果不用DBLINK,可以先从第一个DB中取出数据存在内存里(DATATABLE,DATAVIEW,DATASET..),
然后通过程序再INSERT 至第二个DB中.
明白了吗?

#4


引用 3 楼 SYUEHOKO 的回复:
1楼说的其实最简单.用DBLINK把两个数据库连接起来. 然后用SQL解决..或者你如果想实时的数据传输的话. 
你可以再写一个触发器.(可以GOOGLE一下,例子很多) 
如果你用程序写的话.我这只提供思路..本人开发过. 
建立DBLINK. 然后分别打开两个数据库,通过在程序里写SQL执行.最后COMMIT.完了. 
如果不用DBLINK,可以先从第一个DB中取出数据存在内存里(DATATABLE,DATAVIEW,DATASET..), 
然后通过程序再INSERT 至第二个DB中. 
明白了…

不错

#5


SYUEHOKO说的很清楚,思路大致清晰了,我去实现一下!

#1


用DBLink在后台做比较省事

#2


楼上能具体说一下吗?这个功能以后要集成到软件中,所以需要用代码实现!

#3


1楼说的其实最简单.用DBLINK把两个数据库连接起来. 然后用SQL解决..或者你如果想实时的数据传输的话.
你可以再写一个触发器.(可以GOOGLE一下,例子很多)
如果你用程序写的话.我这只提供思路..本人开发过.
建立DBLINK. 然后分别打开两个数据库,通过在程序里写SQL执行.最后COMMIT.完了.
如果不用DBLINK,可以先从第一个DB中取出数据存在内存里(DATATABLE,DATAVIEW,DATASET..),
然后通过程序再INSERT 至第二个DB中.
明白了吗?

#4


引用 3 楼 SYUEHOKO 的回复:
1楼说的其实最简单.用DBLINK把两个数据库连接起来. 然后用SQL解决..或者你如果想实时的数据传输的话. 
你可以再写一个触发器.(可以GOOGLE一下,例子很多) 
如果你用程序写的话.我这只提供思路..本人开发过. 
建立DBLINK. 然后分别打开两个数据库,通过在程序里写SQL执行.最后COMMIT.完了. 
如果不用DBLINK,可以先从第一个DB中取出数据存在内存里(DATATABLE,DATAVIEW,DATASET..), 
然后通过程序再INSERT 至第二个DB中. 
明白了…

不错

#5


SYUEHOKO说的很清楚,思路大致清晰了,我去实现一下!