oracle连接别的数据库产品时,透明网关是个不错的选择,如果网络好的话,效果还是理想的。
以下td为teradata的简称。
借鉴了网上的oracle连接sqlserver的过程,整理一下连接td的过程。
1,前提,teradata和oracle都安装。
2,建立odbc,连接到td。假设名称为 odbc_ora2td。
3,安装oracle的Transparent Gateway组件。oracle9的话,在那3张光盘中,oracle10的话,可以去官网下载这个10201_gateways_win32.zip。当然我说的都是在windows32服务器上。linux应该也差不多。在安装的过程中,会出现窗口要求输入配置的odbc名称。输入odbc_ora2td。然后下一步直到完成。会发现在%ORACLE_HOME%\tg4tera\admin\inittg4tera.ora。出现这个文件,其中tg4tera是给TG的"SID",默认为tg4tera。
3.1 其实第3步的效果表现为在%ORACLE_HOME%\tg4tera\admin\inittg4tera.ora 这个文件中
HS_FDS_CONNECT_INFO=odbc_ora2td
这句话。所以如果以后odbc有修改,可以来修改这个地方。
4,修改listener.ora
添加
(SID_DESC =
(SID_NAME = tg4tera)
(ORACLE_HOME = d:\oracle)
(PROGRAM = tg4tera)
)
其中SID_NAME = tg4tera 就是第3步所谓的默认sid,为了方便还是别改了。
5,修改tnsnames.ora
添加
xxxx =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID=tg4tera)
)
(HS=OK)
)
xxxx,你随便叫。localhost就是安装transparent getway的机器
6,重启监听和服务。(好像只重启监听也行)
7,建立dblink。
create database link ora2td connect to username identified by password using 'xxxx';
8,select * from sometables@ora2td 测试一下。
ps:中途遇上的错误
ORA-28545错误,在我这发生的原因是因为配置了listner之后没有重新启动它。
ORA-00600: 内部错误代码,参数: [HO define: Long fetch], [], [], [], [], [], [], [] 。这个是因为你查的表 字段太多超出什么限制了,换个表试试,或者别 select *。我说的是在plsql里
ORA-00904 无效的列名或者标识符。检查一下TD建的表是不是用双引号括起来的列名,如果是,那么你的语句也需要完全匹配并加上双引号。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23577591/viewspace-692454/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23577591/viewspace-692454/