Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Verwenden von VBS und der Registrierung, um festzustellen, welche Version und welche 32- bzw. 64-Bit-Oracle-Treiber installiert sind

Gemäß Ihrem VBS-Code sollte die Frage lauten:Verwenden von VBS und der Registrierung, um festzustellen, welche Version und 32- vs. 64-Bit von ODBC Treiber sind installiert

Es gibt viele andere Treiber für Oracle, z. OleDB, ODP.NET, JDBC usw.

Um 32- und 64-Bit zu bekommen, gibt es zwei Möglichkeiten

Führen Sie das VBS entweder in einem anderen Skripthost aus, z. B.

For 64 Bit: >c:\Windows\system32\cscript.exe Drivers.vbs
For 32 Bit: >c:\Windows\SysWOW64\cscript.exe Drivers.vbs

Oder ändern Sie das VBS-Skript, um 32- und 64-Bit-Pfade in der Registrierung abzufragen:

strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers"
objRegistry.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames, arrValueTypes

For i = 0 to UBound(arrValueNames)
    strValueName = arrValueNames(i)
    objRegistry.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue    
    Wscript.Echo arrValueNames(i) & " -- 64 Bit " & strValue
Next

strKeyPath = "SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers"
objRegistry.EnumValues HKEY_LOCAL_MACHINE, strKeyPath, arrValueNames, arrValueTypes

For i = 0 to UBound(arrValueNames)
    strValueName = arrValueNames(i)
    objRegistry.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue    
    Wscript.Echo arrValueNames(i) & " -- 32 Bit " & strValue
Next

Noch ein Hinweis:TNS_ADMIN und ORACLE_HOME können per Umgebungsvariable definiert werden, Sie können sie jedoch auch in der Registrierung definieren. Suchen Sie nach 64-Bit

HKLM\SOFTWARE\ORACLE\Key_{ORACLE_HOME_NAME}\TNS_ADMIN 
and 
HKLM\SOFTWARE\ORACLE\Key_{ORACLE_HOME_NAME}\ORACLE_HOME

und für 32-Bit

HKLM\SOFTWARE\Wow6432Node\ORACLE\Key_{ORACLE_HOME_NAME}\TNS_ADMIN
and
HKLM\SOFTWARE\Wow6432Node\ORACLE\Key_{ORACLE_HOME_NAME}\ORACLE_HOME