操作系统:Windows 2008 服务器 R2
甲骨文客户端:11.2
非常感谢
在 Windows 中找到此问题的一种简单方法是从 Oracle 主目录的 bin 目录运行 SQLPlus,然后检查任务管理器。如果它是 32 位版本的 SQLPlus,您将在 Processes 选项卡上看到如下所示的进程:
sqlplus.exe *32
如果是 64 位,则该过程将如下所示:
sqlplus.exe
转到%ORACLE_HOME%\inventory\ContentsXML
文件夹并打开
comps.xml
文件
在~第二个屏幕上查找 <DEP_LIST>。
如果以下行有
PLAT="NT_AMD64"
那么这个 Oracle Home 是 64 位的。PLAT="NT_X86"
然后 - 32 位。对我来说超级简单且效果很好的一件事是从 cmd 提示符执行 TNSPing:
TNS Ping Utility for 32-bit Windows: Version 11.2.0.3.0 - Production on 13-MAR-2015 16:35:32
在 Linux 中:
1)找到sqlplus所在的位置,
[oracle@LINUX db_1]$ `which sqlplus`
/app/oracle/product/11.2.0/db_1/bin/sqlplus
2)确定文件类型,
[oracle@LINUX db_1]$ file /app/oracle/product/11.2.0/db_1/bin/sqlplus
/app/oracle/product/11.2.0/db_1/bin/sqlplus:ELF 64 位 LSB 可执行文件,x86-64,版本 1 (SYSV),动态链接(使用共享库)。对于 GNU/Linux 2.6.18,没有剥离。
上面关于 lib 和 lib32 文件夹的链接都不适用于 Oracle Client 11.2.0 但我在OTN 社区中找到了这个:
至于检查客户端安装以尝试判断它是 32 位还是 64 位,您可以检查注册表,32 位主目录将位于 HKLM>Software>WOW6432Node>Oracle,而 64 位主目录将位于 HKLM >软件>甲骨文。
以下内容取自此处,此处未提及:
如果 Oracle 客户端是 32 位的,它将包含一个“lib”文件夹;但如果它是 64 位 Oracle 客户端,它将同时具有“lib”和“lib32”文件夹。
此外,从 Oracle 11.2.0.1 开始,64 位的客户端版本和 32 位的 Oracle 客户端分别提供,并且有一个 $ORACLE_HOME/lib64 目录。
$ORACLE_HOME/lib/ ==> 32 位 $ORACLE_HOME/lib64 ==> 64 位
或者
$ORACLE_HOME/lib/ ==> 64 位 $ORACLE_HOME/lib32 ==> 32 位
对于 Oracle 12.1 Windows 客户端,查看 TNSPING 命令的输出似乎可行:
在 64 位操作系统上安装 32 位:
C:>tnsping
用于 32 位 Windows 的 TNS Ping 实用程序:版本 12.1.0.2.0 - 于 02-FEB-2 016 15:44:37 生产
版权所有 (c) 1997、2014,甲骨文。版权所有。
在 64 位操作系统上安装 64 位:
D:>tnsping
适用于 64 位 Windows 的 TNS Ping 实用程序:版本 12.1.0.1.0 - 于 02-FEB-2 016 16:00:23 生产
版权所有 (c) 1997、2013,甲骨文。版权所有。
对于 Unix
grep "ARCHITECTURE" $ORACLE_HOME/inventory/ContentsXML/oraclehomeproperties.xml
输出是:
<PROPERTY NAME="ARCHITECTURE" VAL="64"/>
对于 Windows
findstr "ARCHITECTURE" %ORACLE_HOME%\inventory\ContentsXML\oraclehomeproperties.xml
输出可以是:
<PROPERTY NAME="ARCHITECTURE" VAL="64"/>
在 64 位系统上:
32 位驱动程序:C:\Windows\SysWOW64\odbcad32.exe
64 位驱动程序:C:\Windows\System32\odbcad32.exe
那里也显示了转到驱动程序选项卡版本。