SQL SERVER2000访问ORACLE数据库问题(高分求救)

zdq801104 2005-05-11 11:33:19
RT,SQL SERVER2000版本是中文企业版,ORACLE版本是9.2。
找了以前别人的帖子就是不行。俺的QQ:178758908,拜谢!

参照:http://search.csdn.net/Expert/topic/2296/2296165.xml?temp=.7055475,还是搞不定
...全文
878 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdq801104 2005-05-13
  • 打赏
  • 举报
回复
该揭贴的时候了
zdq801104 2005-05-12
  • 打赏
  • 举报
回复
也非常感谢RamjetZhang(万花从中一点红,玉树临风王小桃是也),假如我要访问或调用里面的包或者存储过程那要怎么搞呢?再请帮帮忙。
RamjetZhang 2005-05-12
  • 打赏
  • 举报
回复
偶的做法:
1. sql server端安装oracle客户端,配置tns name;
2. 如下(不必加ODBC)
--添加oracle linked server
exec sp_addlinkedserver
@server = 'HIS',
@srvproduct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'foo'--oracle tns name
--添加login,oracle那边的用户名、密码
exec sp_addlinkedsrvlogin
'HIS', false, null, 'foo', 'bar'
--允许RPC调用,以执行存储过程;
exec sp_serveroption N'HIS', N'rpc', N'true'

3. (可能需要重启sql server)
访问方式OpenQuery(对于简单返回结果集的建议用OpenQuery,回传的数据量比较少,效率比较高):
select * from
OpenQuery
(
HIS,
'select terminal, machine, OSUSER, program,
SQL_HASH_VALUE, logon_time, status
from v$session
where type = ''USER''
'
)

或者四段式query,对执行存储过程这个比较方便,效率类同OpenQuery(某些复杂的存储过程用OpenQuery+ExecSQL做的天昏地暗,有些根本没法执行,但用四段query就很方便);
select * from HIS..SCOTT.[USERS] --LinkSvrName..Owner.TableName

zdq801104 2005-05-12
  • 打赏
  • 举报
回复
真的不?我跟领导说说就可以了,我QQ是178758908,可以联系我。^_^,顺注:(我们是中外合资企业,规模还不小,钱也不会少的)
zjcxc 2005-05-12
  • 打赏
  • 举报
回复
有啊 :D
zdq801104 2005-05-12
  • 打赏
  • 举报
回复
如果用建系统DNS的话,用ODBC FOR ORACLE会报错,通不过,用ORACLE IN ORAHOME92就可以了, zjcxc(邹建)大哥,你真厉害!我们单位正在找人培训这个呢,如果你能来给我们培训培训就好了,有兴趣不?^_^!
zdq801104 2005-05-12
  • 打赏
  • 举报
回复
那先再试试
zdq801104 2005-05-12
  • 打赏
  • 举报
回复
解决了,我没有用执行分析器来建,直接在链接服务器那里搞,用跟踪出来的执行存储过程是
exec sp_addlinkedserver
N'HERO' , --链接名
@srvproduct = N'' ,
@provider = N'MSDAORA' ,
@datasrc = N'AS11'--服务器名
zjcxc 2005-05-12
  • 打赏
  • 举报
回复
验证失败这个正常嘛(前面报的未发现数据源名称并且未指定默认驱动程序)这个就不正常了.

你再为链接服务器添加登录的验证信息:


EXEC sp_addlinkedserver
@server = 'test', --链接服务器名
@srvproduct = '',
@provider='MSDASQL',
@datasrc='abc' --连接ORACLE的系统DSN名

--添加登录用户
EXEC sp_addlinkedsrvlogin 'test','false',null,'用户名','密码'

SELECT *
FROM OPENQUERY(test, 'SELECT name, id FROM joe.titles')
zdq801104 2005-05-12
  • 打赏
  • 举报
回复
还是要请 zjcxc(邹建) 大哥帮忙
zdq801104 2005-05-12
  • 打赏
  • 举报
回复
我用了ODBC FOR ORACLE驱动,根本就没有测试的选项,也没有保存密码的选项

报错:
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'MSDASQL' 报错。验证失败。
[OLE/DB provider returned message: [Microsoft][ODBC 驱动程序管理器] 驱动程序的 SQLSetConnectAttr 失败]
[OLE/DB provider returned message: [Microsoft][ODBC 驱动程序管理器] 驱动程序的 SQLSetConnectAttr 失败]
[OLE/DB provider returned message: [Microsoft][ODBC driver for Oracle][Oracle]ORA-01017: 无效的用户名/口令;拒绝登录]
zdq801104 2005-05-12
  • 打赏
  • 举报
回复
我建了一个系统DSN,选择的驱动是ORACLE IN ORAHOME92,测试是通过了,但是找不到选项来保存ORACLE密码。
报错:
OLE DB 提供程序 'MSDASQL' 报错。验证失败。
[OLE/DB provider returned message: [Microsoft][ODBC 驱动程序管理器] 驱动程序的 SQLSetConnectAttr 失败]
[OLE/DB provider returned message: [Microsoft][ODBC 驱动程序管理器] 驱动程序的 SQLSetConnectAttr 失败]
[OLE/DB provider returned message: [Oracle][ODBC][Ora]ORA-01017: invalid username/password; logon denied
]
zdq801104 2005-05-11
  • 打赏
  • 举报
回复
前面这两步是可以通过,剩下的改怎么做?请zjcxc(邹建)再帮帮忙
zdq801104 2005-05-11
  • 打赏
  • 举报
回复
谢谢zjcxc(邹建)大哥,我先试试
zjcxc 2005-05-11
  • 打赏
  • 举报
回复
下面的步骤能完成吗?

在sql server服务器上安装oracle客户端

然后在sql server服务器的控制面板--管理工具--数据源(ODBC)中,新建一个系统DSN,连接到oracle,并且在最后完成的步骤中能够测试通过.
Comer 2005-05-11
  • 打赏
  • 举报
回复
zjcxc(邹建)老大真强

佩服得五体投地
zjcxc 2005-05-11
  • 打赏
  • 举报
回复
你是创建了用户DSN吧? 一定要系统DSN才行.
zdq801104 2005-05-11
  • 打赏
  • 举报
回复
我在里面执行的代码是这样的
EXEC sp_addlinkedserver
@server = 'test', --链接服务器名
@srvproduct = '',
@provider='MSDASQL',
@datasrc='abc' --连接ORACLE的系统DSN名

SELECT *
FROM OPENQUERY(test, 'SELECT name, id FROM joe.titles')

abc我我测试过是通的,DNS的驱动我选择的是ORACLE in OraHome92
-------------------------------------------------------------------
报错是:
服务器: 消息 7399,级别 16,状态 1,行 7
OLE DB 提供程序 'MSDASQL' 报错。
[OLE/DB provider returned message: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序]

请zjcxc(邹建)大哥再看看。

zjcxc 2005-05-11
  • 打赏
  • 举报
回复
没可能,除非你指定的<系统DSN名称>不正确
zdq801104 2005-05-11
  • 打赏
  • 举报
回复
错误提示:“OLE DB提供程序“MSDASQL”报错,未发现数据源名称并且为指定默认驱动程序”
加载更多回复(2)

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧