我是想通过通过SQL服务,使用户直接在Oracle数据库中执行对非Oracle数据库的各种SQL语句。
我采用的是通用连方法(ODBC),这样可以不受透明网关的限制
ORALCE版本:9.1
SQLSERVER:2000,注册方式,通过用户名密码(sa)
我配置好,怎么都不能通过ORACLE访问SQLSERVER里的数据.下面是我的步骤,请大家帮我看看问题出在哪里
1:配制好ODBC,名字为oradns2sql
2:修改tnsnames.ora,增加如下内容
LNK2SQL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = cxj)(PORT = 1521))
)
(CONNECT_DATA =
(SID = cxj)
(HS = OK)
)
)
3:修改listener.ora[粗体是我增加的部分]
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = cxj)
(ORACLE_HOME = d:\oracle\ora92)
(SID_NAME = cxj)
)
(SID_DESC =
(PROGRAM = extproc)
(SID_NAME = PLSExtProc)
(ORACLE_HOME = d:\oracle\ora92)
)
(SID_DESC =
(PROGRAM = hsodbc)
(SID_NAME = cxj)
(ORACLE_HOME = d:\oracle\ora92) )
)
4:重启监听和服务
5:编辑位于ORACLE_HOME\HS\ADMIN内inithsodbc.ora
HS_FDS_CONNECT_INFO = dnsora2sql < ODBC系统名
HS_FDS_TRACE_LEVEL = 0
6:创建DBLINK
create database link ‘ora2sql’ connect
to "sa" identified by "cxj" using ‘lnk2sql’;
7:最后测试连接
select * from sysobjects@ora2sql
报错:ORA-01017: invalid username/password; logon denied
ORA-02063: 紧接着line(源于ORA2SQL)
但是我的用户名和密码是正确啊,是可以访问SQLSERVER的,不知道为什么报这个错
请大家帮忙看看啊,问题出在哪个环节了,非常感谢!!!!!
[ 本帖最后由 木槿123 于 2008-8-24 11:50 编辑 ]

最新回复
木槿123 (2008-8-24 12:23:34)
错误原因如下:
1、第二步错误:有一个括号的位置打错了
LNK2SQL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = cxj)(PORT = 1521))
)
(CONNECT_DATA =
(SID = cxj)
) (HS = OK)
)
2、我的SID名字错误了
应该是用一个不存在的SID名字
3、第五步错误了编辑位于ORACLE_HOME\HS\ADMIN内inithsodbc.ora
不是编辑inithsodbc.ora还是新建一个和我的SID名字一样的,ORA,如我的SID名字是test,则建一个inittestc.ora
结果就成功了,好高兴喔,在此感谢灰亦的提醒呵呵。谢谢谢谢!