OCI.DLL issue with Oracle 9

ILDam

Member
I have PL/SQL Developer 5.0.3.518 on an XP Pro SP2 box. It was previously working with Oracle 8.1, but stopped once I installed Oracle 9.2.

Whenever I log in to my database I get OCI.dll missing errors.

If I go to Tools-Preferences-Options, the "Oracle Home" and "OCI Library" drop-down lists are empty even though I can see multiple homes in the registry.

How does PL/SQL Developer determine the available homes to populate the drop down lists?

If I type my new Oracle 9 home and location to the v9 OCI.dll, I can log in successfully. However the Help-About still says "OCI: Version 8.1" even though I am using the v9 client.

I suspect the "Autodetect" functionality is not working as expected... It ignores the default Oracle home specified in the registry, skips over (alphabetically anyway) the Oracle 9 homes I have installed and chooses the first Oracle 8 home it finds!

How does PL/SQL Developer autodetect the correct Oracle Home and path to the OCI.dll?

Many thanks,
Dam
 
This is most likely an inconsistency between the PATH environment variable and the Oracle Registry. Can you go to Help > About, press the 'Info' button, press the 'Copy all pages' button on this info screen, and paste this text into an e-mail reply?
 
Thanks Marco.

First there is the info when it's broken (ie: no changes made to Tools-Preferences-Options...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

--- Info ---

PL/SQL Developer
Version 5.0.3.518
02.10397 - Unlimited user license
Windows 2000 version 6.0 (build 2600) Service Pack 1

Parameters
C:\PROGRA~1\PLSQLDev\PLSQLDev.exe

Preferences
Session mode: Multi
OCI Library:
Use OCI7: False

Aliases

Homes
OraHome81 (F:\OracleClient\8.1.6)

DLLs
F:\OracleClient\8.1.6\bin\oci.dll

TNS File
F:\OracleClient\8.1.6\Network\Admin\tnsnames.ora

Using
Home: OraHome81
DLL: F:\OracleClient\8.1.6\bin\oci.dll
OCI: Version 8.1

--- Registry ---

SOFTWARE\ORACLE
API = C:\Local\Oracle\Clients\9203.2\dbs
inst_loc = C:\Program Files\Oracle\Inventory
NLS_LANG = NA
OLEDB = C:\Local\Oracle\Clients\9203.2\oledb\mesg
OO4O = C:\Local\Oracle\Clients\9203.2\oo4o\mesg
ORACLE_GROUP_NAME = Oracle - OraHome92032
ORACLE_HOME = C:\Local\Oracle\Clients\9203.2
ORACLE_HOME_NAME = OraHome92032
NLS_DATE_FORMAT = DD-MON-RR

SOFTWARE\ORACLE\ALL_HOMES
DEFAULT_HOME = OraHome92032
HOME_COUNTER = 1
LAST_HOME = 92032

SOFTWARE\ORACLE\ALL_HOMES\ID0
NAME = OraHome81
NLS_LANG = NA
PATH = F:\OracleClient\8.1.6

SOFTWARE\ORACLE\ALL_HOMES\ID92032
NAME = OraHome92032
NLS_LANG = NA
PATH = C:\Local\Oracle\Clients\9203.2

SOFTWARE\ORACLE\HOME0
ID = 0
MSHELP_TOOLS = F:\OracleClient\8.1.6\MSHELP
NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P1
ORACLE_GROUP_NAME = Oracle - OraHome81
ORACLE_HOME = F:\OracleClient\8.1.6
ORACLE_HOME_KEY = Software\ORACLE\HOME0
ORACLE_HOME_NAME = OraHome81
SQLPATH = F:\OracleClient\8.1.6\dbs

SOFTWARE\ORACLE\HOME92032
ID = 0
NLS_LANG = AMERICAN_AMERICA.WE8MSWIN1252
ORACLE_BUNDLE_NAME = Enterprise
ORACLE_GROUP_NAME = Oracle - OraHome92032
ORACLE_HOME = C:\Local\Oracle\Clients\9203.2
ORACLE_HOME_KEY = Software\ORACLE\HOME92032
ORACLE_HOME_NAME = OraHome92032
ORAMTS_CONN_POOL_TIMEOUT = 120
ORAMTS_CP_TRACE_DIR = C:\Local\Oracle\Clients\9203.2\oramts\Trace
ORAMTS_CP_TRACE_LEVEL = 0
ORAMTS_NET_CACHE_MAXFREE = 5
ORAMTS_NET_CACHE_TIMEOUT = 120000
ORAMTS_OSCREDS_MATCH_LEVEL = OS_AUTH_LOGIN
ORAMTS_SESS_TXNTIMETOLIVE = 120
SQLPATH = C:\Local\Oracle\Clients\9203.2\dbs
TNS_ADMIN = C:\Local\oracle\Network\Admin

SOFTWARE\ORACLE\ODP.NET
TraceFileName = C:\WINNT\Temp\ODPNET.trc
TraceLevel = 0
TraceOption = 0

SOFTWARE\ORACLE\OLEDB
CacheType = Memory
ChunkSize = 100
DistribTX = 1
FetchSize = 100
OSAuthent = 0
PLSQLRSet = 0
PwdChgDlg = 1
SchRstLng = 10000
UserDefFn = 0
DisableRetClause = 1
VCharNull = 1
TraceCategory = 0
TraceFileName = c:\OraOLEDB.trc
TraceLevel = 0
TraceOption = 0

SOFTWARE\ORACLE\OO4O
CacheBlocks = 20
FetchLimit = 100
FetchSize = 4096
HelpFile = C:\Local\Oracle\Clients\9203.2\MSHELP\oracleo.hlp
OO4O_HOME = C:\Local\Oracle\Clients\9203.2\oo4o
PerBlock = 16
SliceSize = 256
TempFileDirectory = C:\winnt\temp

--- Path ---

C:\local\oracle\clients\9203.2\bin
C:\WINNT\system32
C:\WINNT
C:\WINNT\System32\Wbem
C:\CSsystem
C:\Utils
C:\Program Files\Sybase.12\12_0\bin
C:\Program Files\Sybase.12\12_0\dll
C:\PROGRA~1\CA\Common\SCANEN~1
C:\PROGRA~1\CA\eTrust\ANTIVI~1
C:\Program Files\JavaSoft\JRE\1.1.7\bin

--- TNS names ---

##################################
# TNSNAMES.ORA Configuration File
# Date: October 28 2004
##################################

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
And here it is after I've "fixed" it by changing the Oracle Home and OCI Library settings on Tools-Preferences-Options.

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

--- Info ---

PL/SQL Developer
Version 5.0.3.518
02.10397 - Unlimited user license
Windows 2000 version 6.0 (build 2600) Service Pack 1

Parameters
C:\PROGRA~1\PLSQLDev\PLSQLDev.exe

Preferences
Session mode: Multi
OCI Library: C:\Local\oracle\Clients\9203.2\bin\oci.dll
Use OCI7: False

Aliases

Homes
OraHome81 (F:\OracleClient\8.1.6)

DLLs
F:\OracleClient\8.1.6\bin\oci.dll

TNS File
F:\OracleClient\8.1.6\Network\Admin\tnsnames.ora

Using
Home: OraHome92032
DLL: C:\Local\oracle\Clients\9203.2\bin\oci.dll
OCI: Version 8.1

--- Registry ---

SOFTWARE\ORACLE
API = C:\Local\Oracle\Clients\9203.2\dbs
inst_loc = C:\Program Files\Oracle\Inventory
NLS_LANG = NA
OLEDB = C:\Local\Oracle\Clients\9203.2\oledb\mesg
OO4O = C:\Local\Oracle\Clients\9203.2\oo4o\mesg
ORACLE_GROUP_NAME = Oracle - OraHome92032
ORACLE_HOME = C:\Local\Oracle\Clients\9203.2
ORACLE_HOME_NAME = OraHome92032
NLS_DATE_FORMAT = DD-MON-RR

SOFTWARE\ORACLE\ALL_HOMES
DEFAULT_HOME = OraHome92032
HOME_COUNTER = 1
LAST_HOME = 92032

SOFTWARE\ORACLE\ALL_HOMES\ID0
NAME = OraHome81
NLS_LANG = NA
PATH = F:\OracleClient\8.1.6

SOFTWARE\ORACLE\ALL_HOMES\ID92032
NAME = OraHome92032
NLS_LANG = NA
PATH = C:\Local\Oracle\Clients\9203.2

SOFTWARE\ORACLE\HOME0
ID = 0
MSHELP_TOOLS = F:\OracleClient\8.1.6\MSHELP
NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P1
ORACLE_GROUP_NAME = Oracle - OraHome81
ORACLE_HOME = F:\OracleClient\8.1.6
ORACLE_HOME_KEY = Software\ORACLE\HOME0
ORACLE_HOME_NAME = OraHome81
SQLPATH = F:\OracleClient\8.1.6\dbs

SOFTWARE\ORACLE\HOME92032
ID = 0
NLS_LANG = AMERICAN_AMERICA.WE8MSWIN1252
ORACLE_BUNDLE_NAME = Enterprise
ORACLE_GROUP_NAME = Oracle - OraHome92032
ORACLE_HOME = C:\Local\Oracle\Clients\9203.2
ORACLE_HOME_KEY = Software\ORACLE\HOME92032
ORACLE_HOME_NAME = OraHome92032
ORAMTS_CONN_POOL_TIMEOUT = 120
ORAMTS_CP_TRACE_DIR = C:\Local\Oracle\Clients\9203.2\oramts\Trace
ORAMTS_CP_TRACE_LEVEL = 0
ORAMTS_NET_CACHE_MAXFREE = 5
ORAMTS_NET_CACHE_TIMEOUT = 120000
ORAMTS_OSCREDS_MATCH_LEVEL = OS_AUTH_LOGIN
ORAMTS_SESS_TXNTIMETOLIVE = 120
SQLPATH = C:\Local\Oracle\Clients\9203.2\dbs
TNS_ADMIN = C:\Local\oracle\Network\Admin

SOFTWARE\ORACLE\ODP.NET
TraceFileName = C:\WINNT\Temp\ODPNET.trc
TraceLevel = 0
TraceOption = 0

SOFTWARE\ORACLE\OLEDB
CacheType = Memory
ChunkSize = 100
DistribTX = 1
FetchSize = 100
OSAuthent = 0
PLSQLRSet = 0
PwdChgDlg = 1
SchRstLng = 10000
UserDefFn = 0
DisableRetClause = 1
VCharNull = 1
TraceCategory = 0
TraceFileName = c:\OraOLEDB.trc
TraceLevel = 0
TraceOption = 0

SOFTWARE\ORACLE\OO4O
CacheBlocks = 20
FetchLimit = 100
FetchSize = 4096
HelpFile = C:\Local\Oracle\Clients\9203.2\MSHELP\oracleo.hlp
OO4O_HOME = C:\Local\Oracle\Clients\9203.2\oo4o
PerBlock = 16
SliceSize = 256
TempFileDirectory = C:\winnt\temp

--- Path ---

C:\local\oracle\clients\9203.2\bin
C:\WINNT\system32
C:\WINNT
C:\WINNT\System32\Wbem
C:\CSsystem
C:\Utils
C:\Program Files\Sybase.12\12_0\bin
C:\Program Files\Sybase.12\12_0\dll
C:\PROGRA~1\CA\Common\SCANEN~1
C:\PROGRA~1\CA\eTrust\ANTIVI~1
C:\Program Files\JavaSoft\JRE\1.1.7\bin

--- TNS names ---

##################################
# TNSNAMES.ORA Configuration File
# Date: October 28 2004
##################################

 
The 2nd home is not detected because it has ID 92032 instead of ID 1. This home is the first in the PATH environment variable though, and this causes the problem. Can you rename it to ID1?
 
Sadly not - I have to support too many homes on multiple legacy platforms.
Please raise a bug report with your development team to perform a more robust search of the Oracle Homes.
Thanks for your help.
 
This bugfix is already implemented, but you are using an "old" version (5.0.3). The 5.1.x and 6.0.x versions can handle this situation. Perhaps you can upgrade?
 
Back
Top