今天捣鼓了一天才搞好这个事情。小记一下以便后续问题可以照着做。
1 本地 win8 64位系统
2 本地vs2008 目测32位
3 本地 sqlserver 2008r2 64位
4 本地 oracle 64位 12c,仅仅用来充当客户端用,只是负责连接到服务器而已
5 服务器 64位 linux
6 数据库 64位 oracle 11.2
一开始用在本地创建64位odbc是成功的,odbc测试也可以连接到数据库服务器,
但是在ssrs上 总是提示
在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
所以我们怀疑是32位的 vs2008 和 64位的 oracle客户端 不匹配。
然后又下了一个 32位 oracle instant client (11.2) 将注册表里的 地址 和 ORACLE_HOME都指向过去后
然后使用32位 odbc 尝试创建dsn。但是一直无法找到这个 instant client,总是提示
未发现 Oracle(TM) 客户端和网络组件。
这些组件是由 Oracle 公司提供的,是 Oracle 7.3 版 (或更高) 客户软件安装的一部分。
最后说下odbc,这个在系统上是分32和64位的,
32位的位于 windows\system32\odbcad32.exe,
64位的位于 windows\sysWOW64\odbcad32.exe,
总之就是。32位的vs2008 导致必须要32位的odbc,以及32位的oracle客户端。
而32位的oracle客户端,却是可以连接到32和64位的数据库上
再PS: 由于现在是32位的客户端了,我的64位的toad反而不能用,只能用32位的plsql dev