方式1,odbc;
步骤:
1,创建odbc,链接sqlserver,系统dsn
2,编辑链接文件一般在$ORACLE_HOME/hs/admin/目录下的一个ora文件,注意,里边内容类似
HS_FDS_CONNECT_INFO = dns_sid -- 需要填写你的dns名
HS_FDS_TRACE_LEVEL = OFF
3,编辑listener文件
增加内容
(SID_DESC =
(PROGRAM = dg4odbc 或者hsodbc) --不同版本填写的不一样,sql2005是hsodbc
(ORACLE_HOME = 这里填写你的ORACLE_HOME)
(SID_NAME = dgodbc) --此处为配置文件SID,要与initxxx.ora中的名字对应
)
确保监听正常启动
4,编辑tns
追加:
conn_sql =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)) # HOST= ORACLE IP
(CONNECT_DATA=(SID=这里写上你的sid,代表sqlserver))
(HS=OK)
)
5,oracle中创建dblink
CREATE PUBLIC DATABASE LINK MSSQLDB CONNECT TO LOGE IDENGIFIED BY ORACLE USING ‘conn_sql';
查询:
SELECT COUNT(*) FROM SYSCOLUMNS@LINK1;
方式2,gateways;
安装步骤参照网络,很多的,配置步骤类似,说明不一样地方,
1,如果gateways跟oracle安装在同一台服务器上,推荐安装在统一目录中
2,配置$ORACLE_HOME\tg4msql\admin目录下的ora配置文件,
内容大概如下
HS_FDS_CONNECT_INFO=ip:1433//db_name
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
注意这是sqlserver 2008的,其他版本可能不太一样
4,这里添加的PROGRAM为dg4msql
注意事项:
1,导入批量的中间表,
select 'create table ' + name + ' as select * from ' + name + '@MSSQLDB;' from sys.all_objects where type='U';
2,sqlserver数据库区分大小写问题,但是oracle如果创建的列或者表名等对象没有双引号因起来的花,是不区分大小写的,如果导入sqlserver的列名不一致就需要使用双引号因起来
如果向将sqlserver的列明改小写,
select 'alter table ' + b.name + ' rename column '+'"' + a.name + '"' +' to ' + lower(a.name) + ';'
from sys.all_columns a
left join sys.all_objects b on a.object_id = b.object_id
where a.object_id
in(select object_id from sys.all_objects where type='U');
本文参考文档:
http://www.oracle.com/technetwork/articles/gateways-096887-zhs.html
步骤:
1,创建odbc,链接sqlserver,系统dsn
2,编辑链接文件一般在$ORACLE_HOME/hs/admin/目录下的一个ora文件,注意,里边内容类似
HS_FDS_CONNECT_INFO = dns_sid -- 需要填写你的dns名
HS_FDS_TRACE_LEVEL = OFF
3,编辑listener文件
增加内容
(SID_DESC =
(PROGRAM = dg4odbc 或者hsodbc) --不同版本填写的不一样,sql2005是hsodbc
(ORACLE_HOME = 这里填写你的ORACLE_HOME)
(SID_NAME = dgodbc) --此处为配置文件SID,要与initxxx.ora中的名字对应
)
确保监听正常启动
4,编辑tns
追加:
conn_sql =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)) # HOST= ORACLE IP
(CONNECT_DATA=(SID=这里写上你的sid,代表sqlserver))
(HS=OK)
)
5,oracle中创建dblink
CREATE PUBLIC DATABASE LINK MSSQLDB CONNECT TO LOGE IDENGIFIED BY ORACLE USING ‘conn_sql';
查询:
SELECT COUNT(*) FROM SYSCOLUMNS@LINK1;
方式2,gateways;
安装步骤参照网络,很多的,配置步骤类似,说明不一样地方,
1,如果gateways跟oracle安装在同一台服务器上,推荐安装在统一目录中
2,配置$ORACLE_HOME\tg4msql\admin目录下的ora配置文件,
内容大概如下
HS_FDS_CONNECT_INFO=ip:1433//db_name
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER
注意这是sqlserver 2008的,其他版本可能不太一样
4,这里添加的PROGRAM为dg4msql
注意事项:
1,导入批量的中间表,
select 'create table ' + name + ' as select * from ' + name + '@MSSQLDB;' from sys.all_objects where type='U';
2,sqlserver数据库区分大小写问题,但是oracle如果创建的列或者表名等对象没有双引号因起来的花,是不区分大小写的,如果导入sqlserver的列名不一致就需要使用双引号因起来
如果向将sqlserver的列明改小写,
select 'alter table ' + b.name + ' rename column '+'"' + a.name + '"' +' to ' + lower(a.name) + ';'
from sys.all_columns a
left join sys.all_objects b on a.object_id = b.object_id
where a.object_id
in(select object_id from sys.all_objects where type='U');
本文参考文档:
http://www.oracle.com/technetwork/articles/gateways-096887-zhs.html