我正在使用ColdFusion将数据从Sybase数据库复制到Oracle 11g。两个数据库都具有完全相同的表和列。我只知道使用以下方法,并想知道是否有更有效的方法。
我目前正在Sybase中执行select * from table_A
。然后循环查询结果并将数据插入我的Oracle数据库:
<cfloop query="GetTableA" datasource="SybaseDB">
<cfquery name="InsertToOracle" datasource="OracleDB">
INSERT INTO (column list...)
Values (values from GetTableA)
</cfquery>
</cfloop>
就像我现在正在做的那样,对于少量数据是可以接受的。但是,当循环超过2000条记录时,性能开始下降。
答案 0 :(得分:1)
如果两个数据库都位于同一个数据中心,或者足够近,那么一个好的选择就是使用数据库链接。本文讨论从Oracle数据库访问Sybase数据库: How to query Sybase database from Oracle database via db link
建立连接后,只需要:
INSERT INTO [oracle_table] ...
SELECT ... FROM [sybase_table]