在做新旧系统数据迁移时,如果旧系统不是oracle,新系统是oracle,可以考虑采用Oracle的异构服务(Heterogeneous Services,简称HS)。在oracle中创建与其它数据库的database link。这样就能在oracle中直接访问其它数据库,也可以进行两个不同数据库的表间连接查询。
异构服务有两种方式,第一种称做透明网关,需要另外购买oracle的使用授权,例如连接SQL Server则必须要有SQL Transparent Gateway for SQL Server。第二种称做通用连接,可以通过ODBC或OLE DB两种方式,因此理论上可以连接所有的数据库。
下面说明通用连接的设置步骤如下:
(1) 确定是否安装了HS组件。
执行:desc sys.HS_BASE_CAPS;
如果存在则说明已经安装了HS组件。
(2)配置ODBC连接,见下图
(3)配置tnsnames.ora与listener.ora
参考:E:/oracle9/hs/admin/ tnsnames.ora.sample
E:/oracle9/hs/admin/ listener.ora.sample
(4)配置E:/oracle9/hs/admin/inithsoledb.ora
HS_FDS_CONNECT_INFO = {ODBC系统名}
HS_FDS_TRACE_LEVEL = on
(5)创建database link
重启oracle的监听后测试。
以上方法可以在oracle文档中通过查找“HS_FDS_CONNECT_INFO”找到。
采用透明网关的方式见文档《安装oracle异构数据库组件_创建实例.doc》