Oracle与SQL Server之间的数据迁移

发表于:2007-07-04来源:作者:点击数: 标签:
很多时间,要在异构 数据库 之间进行数据迁移或抽取,如果在 SQL 中提取ORACLE的数据,可以通过ODBC、OLEDB等多种方式,要从ORACLE提取SQL中的数据,大都是通过透明网关来实现的。 在异构数据抽取过程中,最好采用SQL92标准的语法编写SQL代码,同时要注意不

很多时间,要在异构数据库之间进行数据迁移或抽取,如果在SQL中提取ORACLE的数据,可以通过ODBC、OLEDB等多种方式,要从ORACLE提取SQL中的数据,大都是通过透明网关来实现的。

在异构数据抽取过程中,最好采用SQL92标准的语法编写SQL代码,同时要注意不同数据库之间数据类型的转换关系,如ORACLE的日期类型用DATE、SQL用Datetime等。

一 关于ORACLE的透明网关配置

ORACLE安装时(9i),将TRANSPARENT GATEWAY FOR MSSQL选中,在ORACLE主目录\BIN中,有个tg4msql.exe程序,它是透明网关程序啦,同时在主目录中还有tgrmsql的一个目录,ORACLE_HOME\tg4msql\admin目录中的inittg4msql.ora就是需要进行配置才能在ORACLE中连接SQL。

1 如何配置透明网关呢?打开inittg4msql.ora:

     # HS init parameters
  

xzh代表SQL服务名,pubs代表要访问的SQL数据库。

     HS_FDS_CONNECT_INFO="SERVER=xzh;DATABASE=pubs"      HS_FDS_TRACE_LEVEL=OFF      HS_FDS_RECOVERY_ACCOUNT=RECOVER      HS_FDS_RECOVERY_PWD=RECOVER
  

2 监听的配置oracle_home\network\admin\Listiner.ora

     LISTENER =       (DESCRIPTION_LIST =        (DESCRIPTION =         (ADDRESS_LIST =          (ADDRESS = (PROTOCOL = TCP)(HOST = xzh)(PORT = 1521))         )         (ADDRESS_LIST =          (ADDRESS = (PROTOCOL = TCP)(HOST = xzh)(PORT = 1527))         )        )       )      SID_LIST_LISTENER =       (SID_LIST =        (SID_DESC =         (GLOBAL_DBNAME = xzh.world)         (ORACLE_HOME = D:\oracle\ora92)         (SID_NAME = xzh)        )        (SID_DESC =          (GLOBAL_DBNAME = tg4msql)          (PROGRAM = tg4msql)          (SID_NAME = tg4msql)          (ORACLE_HOME = D:\oracle\ora92)        )       )
  

加亮代码是要在监听文件中新加部分,GLOBAL_DBNAME、SID_NAME可以任意,PROGRM必须指向tg4msql。

3 本地服务文件的配置oracle_home\network\admin\TnsNames.ora

     XZH =       (DESCRIPTION =        (ADDRESS_LIST =         (ADDRESS = (PROTOCOL = TCP)(HOST = xzh)(PORT = 1521))        )        (CONNECT_DATA =         (SERVER = DEDICATED)         (SERVICE_NAME = xzh.world)        )       )      TG4MSQL =       (DESCRIPTION =        (ADDRESS_LIST =         (ADDRESS = (PROTOCOL = TCP)(HOST = xzh)(PORT = 1527))        )        (CONNECT_DATA =         (SID = tg4msql)        )        (HS = OK)       )

原文转自:http://www.ltesting.net