Oracle Version 7.3.3 Client Software

Oracle Version 7.3.3 Client Software Average ratng: 7,3/10 4638 reviews

Purchasing) in 7.3.3 in HP-UX environment. User access is thru Web Server 3. I and one other developer have client/server access to SQL.Plus thru SQL.Net. I developed and am running numerous Crystal Reports for distribution. I want to enable user access to such reports, but cannot do so over the web. We do not want to load client. Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation.

Error Description: Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation. Provider is unable to function until these components are installed. Oracle ODBC Driver - Version 8.1.7.0.0 and later Oracle Provider for OLE DB - Version 8.1.7.0.0 and later Microsoft Windows (32-bit) Microsoft Windows x64 (64-bit).Checked for relevance on 21-Nov-2013. Goal. To explain how to determine what BIT Oracle Client Software should be installed for use with SQL Server's Linked Server feature. Install Oracle Client, and add bin location to Path environment varaible of windows OR; Copy oraociicus10.dll (Basic-Lite version) or aociei10.dll (Basic version), oci.dll, orannzsbb10.dll and oraocci10.dll from oracle client installable folder to bin folder of application so that application is able to find required dll.

On Wed, 26 Mar 2008 02:55:00 -0700, davebythesea <daveby..@discussions.microsoft.com> wrote:

¤ Hi,
¤
¤ I'm trying to connect to an Oracle database via a .NET web service running
¤ in IIS on a Windows 2000 server.
¤
¤ I am using the OracleClient (System.Data.OracleClient) provider . When I
¤ call connection.Open() I get the following error -
¤
¤ 'System.Data.OracleClient requires Oracle client software version 8.1.7 or
¤ greater'
¤
¤ The Oracle 10 client is installed on the box as well as .NET framework V 2.0.
¤
¤ Any ideas as to why this is happening? Do I need to install something else?

See if the following helps:

From Oracle's MetaLink:


Problem Description
-------------------

When running an application using any of the following versions of the Oracle
client software for Windows

o Oracle9i Release 2 (9.2.0.1.0, 9.2.0.2.0, 9.2.0.3.0)
o Oracle10g Release 1 (10.1.0.2.0)
o Oracle10g Release 2 (10.2.0.1.0, 10.2.0.2.0) (see note below)

NOTE: If experiencing any of the errors below on Oracle10g Release 2 client
software please apply SOLUTION 2 ONLY. SOLUTION 1 does NOT apply in
this case.

and you attempt to connect to an Oracle database through an environment that
uses the 'Authenticated User' group

NOTE: This typically occurs when running applications from inside
Microsoft's Internet Information Server (IIS) that connect to Oracle

and you are using any of these programmatic interfaces from your application

1. Oracle Provider for OLE DB
2. Microsoft OLE DB Provider for Oracle
3. Oracle ODBC Driver
4. Microsoft ODBC for Oracle
5. Oracle Objects for OLE (OO4O)
6. Microsoft .NET Framework Data Provider for Oracle
7. Oracle Data Provider for .NET (ODP.NET)

you may receive one of the following errors:


(1) Oracle Provider for OLE DB

(a) Error Type: Microsoft OLE DB Service Components (0x80070005)
Access is denied.


(b) OraOLEDB.Oracle Provider is not registered on the local machine


(c) SQL Server Enterprise Manager (Using a Linked Server)

Error 7311: Could not obtain the schema rowset from OLE DB provider
'UNKNOWN'. The provider supports the interface, but returns
failure code when it is used.

OLE DB error trace [OLE/DB Provider 'UNKNOWN'
IDBSSchemaRowset::GetRowset returned 0x80040e37: ].

(d) OLEDBException: TNS-12154: TNS could not resolve service name

(e) Run-time error '3706':

Provider cannot be found. It may not be properly installed.


(2) Microsoft OLE DB Provider for Oracle
(a) Error Type: Microsoft OLE DB Provider for Oracle (0x80004005)

Oracle client and networking components were not found. These
components are supplied by Oracle Corporation and are part of the
Oracle Version 7.3.3 or later client software installation. Provider
is unable to function until these components are installed.


(b) Error Type: Microsoft OLE DB Provider for Oracle (0x80004005)
Oracle error occurred, but error message could not be retrieved
from Oracle.


(c) SQL Server Enterprise Manager (Using a Linked Server)

Error 7399: OLE DB Provider 'MSDAORA' reported an error.

OLE DB error trace [OLE/DB Provider 'MSDAORA'
IDBInitialize::Initialize returned 0x80004005: ].


(3) Oracle ODBC Driver

(a) Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

Specified driver could not be loaded due to system error 5 (Oracle
in OraHome92).

(b) Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Data source name not found and
no default driver specified

Mitsubishi fr-configurator 2 download. (c) SQLSTATE: IM004
Native Error Code: 0
Driver Message: [Microsoft][ODBC Driver Manager] Driver's
SQLAllocHandle on SQL_HANDLE_ENV failed.


(4) Microsoft ODBC for Oracle

(a) The Oracle(tm) client and networking components were not found.
These components are supplied by Oracle Corporation and are part
of the Oracle Version 7.3 (or greater) client software installation.

You will be unable to use this driver until these components have
been installed.


(b) Error number: -2147467259

Error Description: [Microsoft][ODBC Driver Manager] Driver's
SQLAllocHandle on SQL_HANDLE_ENV failed


(5) Oracle Objects for OLE
(a) while using a GLOBAL.ASA file

Error Type: Active Server Pages (0x0)

An error occurred while creating object 'OraSession'.

(b) not using a GLOBAL.ASA file

Error Type: Microsoft VBScript runtime (0x800A0046)

Permission denied: 'CreateObject'


(6) Microsoft .NET Framework Data Provider for Oracle

(a) System.DllNotFoundException: Unable to load DLL (oci.dll).
at System.Data.OracleClient.DBObjectPool.GetObject(Boolean&
isInTransaction)
at System.Data.OracleClient.OracleConnectionPoolManager.
GetPooledConnection(String encryptedConnectionString,
OracleConnectionString options, Boolean& isInTransaction)
at System.Data.OracleClient.OracleConnection.OpenInternal
(OracleConnectionString parsedConnectionString, Object transact)
at System.Data.OracleClient.OracleConnection.Open()
at WCWSItemAvailability.ETAAvailability.SingleAvailability(String
ItemNumber, String BusinessUnit, Int32 OrderQty, Int32&
AvailableQty, Int32& OnHandQty, String& ETADate, Int32& Error)
at WCWSItemAvailability.ETAAvailability.XMLAvailability(String
XMLInput)

(b) Server Error in '<name>' Application.

Could not create an environment: OCIEnvCreate returned -1.

Description: An unhandled exception occurred during the execution of
the current web request. Please review the stack trace for more
information about the error and where it originated in the code.

Exception Details: System.Exception: Could not create an environment:
OCIEnvCreate returned -1.
Stack Trace:

[Exception: Could not create an environment: OCIEnvCreate returned
-1.]
System.Data.OracleClient.DBObjectPool.GetObject(Boolean&
isInTransaction) +467
System.Data.OracleClient.OracleConnectionPoolManager.
GetPooledConnection(String encryptedConnectionString,
OracleConnectionString options, Boolean& isInTransaction) +165
System.Data.OracleClient.OracleConnection.OpenInternal
(OracleConnectionString parsedConnectionString, Object transact)
+836
System.Data.OracleClient.OracleConnection.Open() +32

(c) Unable to find entry point named OCIEnvCreate in OCI.DLL


(7) Oracle Data Provider for .NET (ODP.NET)

(a) ORA-01012: not logged on

(b) ORA-12154 'TNS:could not resolve service name'

(c) System.TypeInitializationException: The type initializer for
'Oracle.DataAccess.Client.OracleConnection' threw an exception. --->
Oracle.DataAccess.Client.OracleException The provider is not
compatible with the version of Oracle client at
Oracle.DataAccess.Client.OracleInit.Initialize()
at Oracle.DataAccess.Client.OracleConnection.cctor()


(8) Other miscellaneous errors

(a) The Specified Module Could Not Be Found

(b) ORA-00604: error occurred at recursive SQL level 1
ORA-12705: invalid or unknown NLS parameter value specified
(c) Unable to load DLL (OraOps9.dll):
..
[DllNotFoundException: Unable to load DLL (OraOps9.dll).]

(d) System Error 998 trying to run ASP page

(e) Your OCI application returns a -1 when calling OCIEnvCreate

(f) You receive an Access Violation Exception from OraGeneric9.dll when
trying to write to memory.


Solution Description
--------------------

NOTE: This problem DOES NOT exist in the Oracle10g Release 2 (10.2.0.1.0) and
later client software for Windows. If you think you are are running
into a similar issue on 10.2.0.1.0 or later software, please see the
'References' section below for other possible solutions.


There are two ways to resolve this problem:

SOLUTION 1 - If you must remain on the current version of the client software
this solution will step you through the manual process for
fixing the permissions problem.

SOLUTION 2 - If you are able to patch your client software to a later version
this solution will advise you on what patch to apply to resolve
this problem.

NOTE - If you are using the Oracle10g Instant Client you MUST follow
SOLUTION 1.


SOLUTION 1

Oracle Client software requires that you give the Authenticated User
privilege to the Oracle Home by following these steps:

1. Log on to Windows as a user with Administrator privileges.

2. Launch Windows Explorer from the Start Menu and navigate to the
ORACLE_HOME folder. This is typically..

- the 'Ora92' folder under the 'Oracle' folder
(i.e. D:OracleOra92) in Oracle9iR2

or

- the 'Client_1' folder under the 'Oracleproduct10.1.0' folder
(i.e. D:Oracleproduct10.1.0Client_1) in Oracle10gR1

or

- the 'Db_1' folder under the 'Oracleproduct10.1.0' folder
(i.e. D:Oracleproduct10.1.0Db_1) in Oracle10gR1

3. Right-click on the ORACLE_HOME folder and choose the 'Properties' option
from the drop down list. A 'Properties' window should appear.

4. Click on the 'Security' tab of the 'Properties' window.

NOTE: If you are running Windows XP and do not have a 'Security' tab
please do the following:
(a) Open 'Folder Options' in your Control Panel.
(b) Choose the 'View' tab.
(c) Under 'Advanced Settings' uncheck the option 'Use simple file
sharing (Recommended)'.

The 'Security' tab should now be available.

5. Click on 'Authenticated Users' item in the 'Name' list (on Windows XP
the 'Name' list is called 'Group or user names').

6. Uncheck the 'Read and Execute' box in the 'Permissions' list under the
'Allow' column (on Windows XP the 'Permissions' list is called
'Permissions for Authenticated Users').

7. Re-check the 'Read and Execute' box under the 'Allow' column (this is
the box you just unchecked).

8. Click the 'Advanced' button and in the 'Permission Entries' list make
sure you see the 'Authenticated Users' listed there with:

Permission = Read & Execute
Apply To = This folder, subfolders and files

If this is NOT the case, edit that line and make sure the 'Apply onto'
drop-down box is set to 'This folder, subfolders and files'. This
should already be set properly but it is important that you verify this.

9. Click the 'Ok' button until you close out all of the security properties
windows. The cursor may present the hour glass for a few seconds as it
applies the permissions you just changed to all subfolders and files.

10. You must REBOOT YOUR COMPUTER to assure that these changes have taken
effect. Failure to do this can prevent this procedure from working!

11. Re-execute the application and it should now work.


NOTE: If the problem is still present after following steps 1-11 and
rebooting your computer in step 10 you should perform the following
two additional permissions settings at step 8 as described below.

This may be necessary due to permissions that have been configured
beyond the standard permissions setup when the OS was originally
installed:

12. If the problem is still present, go back through these same 11 steps
above, but when performing step 8 additionally check both boxes entitled

'Inherit from parent the permission entries that apply to child
objects. Include these with entries explicitly defined here.'

AND
'Replace permission entries on all child objects with entries shown
here that apply to child objects'

AND be sure to reboot in step 10.


SOLUTION 2

9.2.0.1.0, 9.2.0.2.0, 9.2.0.3.0

If you are running Oracle9i Release 2 (9.2.0.1.0 or 9.2.0.2.0 or 9.2.0.3.0)
client software please apply the following 9.2.0.4.0 patch OR LATER:

* Patch Number: 3095277
Description: 9.2.0.4 PATCH SET FOR ORACLE DATABASE SERVER
Product: Oracle Database Family
Release: Oracle 9.2.0.4
Platform: Microsoft Windows (32-bit)
Last Uploaded: 11-SEP-2003
Size: 256M (269101182 bytes)


10.1.0.2.0
If you are running Oracle10g Release 1 (10.1.0.2.0) client software please
apply the following 10.1.0.3.0 patch OR LATER (i.e. 10.1.0.x.x):

* Patch Number: 3761843
Description: 10.1.0.3 PATCH SET FOR ORACLE DATABASE SERVER
Product: Oracle Database Family
Release: Oracle 10.1.0.3
Platform: Microsoft Windows (32-bit)
Last Uploaded: 22-AUG-2004
Size: 447M (469761432 bytes)


10.2.0.1.0, 10.2.0.2.0

If you are running Oracle10g Release 2 (10.2.0.1.0 or 10.2.0.2.0) client
software please apply the following 10.2.0.3.0 patch OR LATER
(i.e. 10.2.0.x.x):

* Patch Number: 5337014
Description: 10.2.0.3 PATCH SET FOR ORACLE DATABASE SERVER
Product: Oracle Database Family
Release: Oracle 10.2.0.3
Platform: Microsoft Windows (32-bit)
Last Uploaded: 21-FEB-2007
Size: 852M (893831865 bytes)


* NOTE: Although these patches appear to be database-only patches they can
also be applied to the client software as well. See the patch
release notes for more information on how to install the patch onto
client software.


Explanation
-----------

If you install Oracle9i Release 2 (9.2.0.1.0) or Oracle10g Release 1
(10.1.0.2.0) client software on a computer running Windows with an NTFS
partition, the contents of ORACLE_HOME directory will not be visible to users
who are authenticated on that machine. These permissions were not set properly
when the software was installed.

Applications that were working fine with previous versions of Oracle software
will stop working when they upgrade to Oracle 9.2 or 10.1.

NOTE: The application will continue to work if it runs as the Administrator
of the machine.

Any application that is using the Authenticated User or possibly another
privilege will not work. A notable example would be IIS which might service
some of the requests based on the Authenticated User privileges.

To demonstrate the problem in further detail, you can log on to the operating
system as an authenticated machine user. You won't be able browse the contents
of the ORACLE_HOME directory demonstrating your inability to load any Oracle
DLLs or make a connection.


Additional Information
----------------------

The above error messages may not only be encountered when using Oracle 9.2 or
10.1 client software but may also exist when running into general permissions
issues using third party products accessing Oracle on a Windows platform.
Paul
~~~~
Microsoft MVP (Visual Basic)

-->

This article describes how to set up a linked server from a computer that is running Microsoft SQL Server to an Oracle database and provides basic troubleshooting steps for common errors you may experience when you set up a linked server to an Oracle database.

Original product version: Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition
Original KB number: 280106

Summary

This article describes how to set up a linked server from a computer that is running Microsoft SQL Server to an Oracle database and provides basic troubleshooting steps for common errors you may experience when you set up a linked server to Oracle. Most of the information in this article is applicable to environments that are configured to use Microsoft OLEDB Provider for Oracle (MSDAORA). Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Instead, use Oracle's OLE DB provider.

Oracle Version 7.3.3 Client Software Manager

For more information on configuring a linked server using Oracle’s OLEDB provider review How to get up and running with Oracle and Linked Servers.

Important

The current version of the Microsoft ODBC Driver for Oracle complies with the ODBC 2.5 specification, while the OLE DB Provider for Oracle is a native Oracle 7 OCI API provider. Both the driver and provider use the SQL*Net Client (or Net8 client for Oracle 8x) and the Oracle Call Interface (OCI) library, and other Oracle client components, to connect to Oracle databases and retrieve data. The Oracle client components are important, and must be configured correctly to successfully connect to Oracle databases using both the driver and the provider.

From Microsoft Data Access Components (MDAC) version 2.5 and later versions, both the Microsoft ODBC Driver and OLE DB Provider support ONLY Oracle 7 and Oracle 8i with the following limitations:

Oracle Version 7.3.3 Client Software Developer

  • Oracle 8.x-specific data types, such as CLOB, BLOB, BFILE, NCHAR, NCLOB, and NVARCHAR2, are not supported.

  • The Unicode feature against Oracle 7.x and 8.x servers is not supported.

  • Multiple Oracle client instances, or multiple Oracle homes, are not supported because they rely on the first occurrence of the Oracle home in the SYSTEM PATH variable.

  • Returning multiple resultsets from a stored procedure or batch SQL statement is not supported using ADO or OLEDB.

  • Nested outer joins are not supported.

  • XML persistence is not supported.

  • Version greater than 8i are not supported using these drivers.

Note

The third-party products that are discussed in this article are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.

Steps to set up a linked server to Oracle

  1. You must install the Oracle client software on the computer that is running SQL Server where the linked server is set up.

  2. Install the driver you want on the computer that is running SQL Server. Microsoft only supports Microsoft OLE DB Provider for Oracle and Microsoft ODBC Driver for Oracle. If you use a third-party provider or a third-party driver to connect to Oracle, you must contact the respective vendor for any problems that you may experience by using their provider or driver.

  3. If you use Microsoft OLE DB Provider for Oracle and Microsoft ODBC Driver for Oracle, consider the following:

    • Both the OLE DB provider and the ODBC driver that are included with Microsoft Data Access Components (MDAC) require SQL*Net 2.3.x, or a later version. You must install the Oracle 7.3.x client software, or a later version, on the client computer. The client computer is the computer that is running SQL Server.

    • Make sure that you have MDAC 2.5, or a later version, installed on the computer that is running SQL Server. With MDAC 2.1, or with an earlier version, you cannot connect to databases that use Oracle 8. x or a later version.

    • To enable MDAC 2.5, or later versions, to work with Oracle client software, the registry must be modified on the client computer that is running SQL Server as indicated in the following table.

  4. Restart the computer that is running SQL Server after you install the Oracle client software.

  5. On the computer that is running SQL Server, set up a linked server by using the following script.

    Note

    If you use Microsoft ODBC Driver for Oracle, you can use the @datasrc parameter to specify a DSN name. For a DSN-less connection, the provider string is supplied through the *@provstr* parameter. With Microsoft OLE DB Provider for Oracle, use the Oracle server alias that is configured in the TNSNames.Ora file for the *@datasrc* parameter. For more information, see the 'sp_addlinkedserver' topic in SQL Server Books Online.

Common error messages and how to troubleshoot them

Important

Oracle Version 7.3.3 Client Software Download

This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base: 322756 How to back up and restore the registry in Windows

You can use either of the following two methods to retrieve extended information about any error that you experience when you execute a distributed query.

  • Method 1

    Connect to SQL Server using SQL Server Management Studio and run the following code to turn on trace flag 7300.

  • Method 2

    Capture the 'OLEDB Errors' event that is located in the 'Errors and Warnings' event category in SQL Profiler. The error message format is the following:

    Interface::Method failed with hex-error code.

    You can look up hex-error code in the Oledberr.h file that is included with the MDAC Software Development Kit (SDK).

The following is a list of common error messages that may occur, together with information about how to troubleshoot the error message.

Note

If you are using SQL Server 2005 or later versions, these error messages may be slightly different. However, the error IDs of these error messages are same as them in older versions of SQL Server. Therefore, you can identify them by the error IDs.For performance-related issues, search SQL Server Books Online for the Optimizing Distributed Queries topic.

  • Message 1

    Error 7399: The OLE DB provider '%ls' for linked server '%ls' reported an error. %ls

    Turn on trace flag 7300 or use SQL Profiler to capture the OLEDB Errors event to retrieve extended OLEDB error information.

  • Message 2a

    'ORA-12154: TNS:could not resolve service name'

  • Message 2b

    'The Oracle(tm) client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 (or greater) client software installation'

    These errors occur when there is a connectivity issue to Oracle server. Review Techniques to troubleshoot connectivity issues to Oracle server section below for additional troubleshooting.

  • Message 3

    Error 7302: Cannot create an instance of OLE DB provider ‘MSDAORA’ for linked server '%ls'.

    Make sure that the MSDAORA.dll file is registered correctly. (The MSDAORA.dll file is the Microsoft OLE DB provider for Oracle file.) Use RegSvr32.exe to register Microsoft OLE DB Provider for Oracle.

    Note

    If you use a third-party Oracle provider, and your Oracle provider cannot run outside a SQL Server process, enable it to run in-process by changing the provider options. To change the provider options, use one of the following methods.

    • Method 1Locate the following registry key. Then, change the value of the AllowInProcess (DWORD) entry to 1. This registry key is located under the corresponding provider name: HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerProvidersProviderName.

    • Method 2Set the Allow InProcess option directly through SQL Server Enterprise Manager when you add a new linked server. Click Provider Options , and then click to select the Allow InProcess check box.

  • Message 4

    Error 7303: Cannot initialize the data source object of OLE DB provider ‘MSDAORA’ for linked server '%ls'. [OLE/DB provider returned message: ORA-01017: invalid username/password; logon denied] OLE DB error trace [OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80040e4d].

    This error message indicates that the linked server does not have correct login mapping. You can execute the sp_helplinkedsrvlogin stored procedure to set the login information correctly. Also, verify that you have specified the correct parameters for the linked server configuration.

  • Message 5

    Error 7306: Cannot open the table ' %ls' from OLE DB provider 'MSDAORA' for linked server '%ls'. The specified table does not exist. [OLE/DB provider returned message: Table does not exist.][OLE/DB provider returned message: ORA-00942: table or view does not exist] OLE DB error trace [OLE/DB Provider 'MSDAORA' IOpenRowset::OpenRowset returned 0x80040e37: The specified table does not exist.].

    Error 7312: Invalid use of schema and/or catalog for OLE DB provider '%ls' for linked server '%ls'. A four-part name was supplied, but the provider does not expose the necessary interfaces to use a catalog and/or schema.

    Error 7313: An invalid schema or catalog was specified for the provider '%ls' for linked server '%ls'.

    Error 7314: The OLE DB provider '%ls' for linked server '%ls' does not contain the table '%ls'. The table either does not exist or the current user does not have permissions on that table.

    If you receive these error messages, a table may be missing in the Oracle schema or you may not have permissions on that table. Verify that the schema name has been typed by using uppercase. The alphabetical case of the table and of the columns should be as specified in the Oracle system tables.

    On the Oracle side, a table or a column that is created without double quotation marks is stored in uppercase. If the table or the column is enclosed in double quotation marks, the table or the column is stored as is.

    The following call shows if the table exists in the Oracle schema. This call also shows the exact table name.

  • Message 6

    Error 7413: Could not connect to linked server '%ls' (OLE DB Provider '%ls'). Enable delegation or use a remote SQL Server login for the current user. Msg 18456, Level 14, State 1, Line 1 Login failed for user '.

    This error message indicates that a distributed query is being attempted for a Microsoft Windows authenticated login without an explicit login mapping. In an operating-system environment in which security delegation is not supported, Windows NT authenticated logins need an explicit mapping to a remote login and password created using sp_addlinkedsrvlogin.

  • Message 7

    Error 7391: The operation could not be performed because OLE DB provider 'MSDAORA' for linked server '%ls' was unable to begin a distributed transaction. OLE DB error trace [OLE/DB Provider 'MSDAORA' ITransactionJoin::JoinTransaction returned 0x8004d01b]

    Verify that the OCI versions are registered correctly as described earlier in this article.

    Note

    If the registry entries are all correct, the MtxOCI.dll file is loaded. If the MtxOCI.dll file is not loaded, you cannot perform distributed transactions against Oracle by using Microsoft OLE DB Provider for Oracle or by using Microsoft ODBC Driver for Oracle. If you are using a third-party provider and you receive Error 7391, verify that the OLE DB provider that you are using supports distributed transactions. If the OLE DB provider does support distributed transactions, verify that the Microsoft Distributed Transaction Coordinator (MSDTC) is running and has network access enabled.

  • Message 8

    Error 7392: Cannot start a transaction for OLE DB provider 'MSDAORA'for linked server '%ls'. OLE DB error trace [OLE/DB Provider 'MSDAORA' ITransactionLocal::StartTransaction returned 0x8004d013: ISOLEVEL=4096].

    The OLE DB provider returned error 7392 because only one transaction can be active for this session. This error indicates that a data modification statement is being attempted against an OLE DB provider when the connection is in an explicit or implicit transaction, and the OLE DB provider does not support nested transactions. SQL Server requires this support so that, on certain error conditions, it can terminate the effects of the data modification statement while continuing with the transaction.

    If SET XACT_ABORT is ON, SQL Server does not require nested transaction support from the OLE DB provider. Therefore, execute SET XACT_ABORT ON before you execute data modification statements against remote tables in an implicit or explicit transaction. Do this in case the OLE DB provider that you are using does not support nested transactions.

Techniques to troubleshoot connectivity issues to Oracle server

To debug the Oracle connectivity issues with either the Microsoft ODBC driver for Oracle or the Microsoft OLE DB Provider for Oracle, follow these steps:

  1. Use the Oracle SQL Plus utility (a command line-based query utility) to verify that you can connect to Oracle and retrieve data.

    Note

    If you cannot connect to Oracle and retrieve data, you either have a bad install or configuration of the Oracle Client Components or you have not correctly created a Transparent Network Substrate (TNS) service alias for the Oracle server when you used the SQL*Net Easy Configuration or Oracle Net8 Easy Configuration utility. Contact your Oracle database administrator (DBA) to verify that the Oracle components that you must have are correctly installed and configured.

  2. Verify the version of the Oracle client (SQL*Net version) that is installed on the computer. Both the Microsoft ODBC driver for Oracle and the Microsoft OLE DB Provider for Oracle require the installation of SQL*Net version 2.3 or later on the client computer.

    The connectivity from SQL Plus (the Oracle client query tool) may appear to function, but you must restart your computer for the ODBC/OLE DB connectivity to function correctly.

    Note

    When you use Oracle 8i, the .rgs file is empty.

  3. If the Oracle client is installed, and you receive an error that indicates that Oracle Client Components 7.3 or later must be installed on the computer, then verify that the environmental variable PATH on the client computer contains the folder in which the Oracle client was installed such as, Oracle_RootBin. If you cannot find this folder, then add the folder to the PATH variable to resolve the error.

  4. Verify that the Ociw32.dll file is in the Oracle_Rootbin folder. This .dll file cannot exist at any other location on the client computer. Make sure that the Oracle Client Component DLLs (for example, the Core40.dll file and the Ora*.dll file) do not exist outside the Oracle_Root folder or subfolders.

  5. Verify that a single Oracle client version is installed on the computer. Multiple versions of SQL*Net cannot exist on the same client computer with interferes and with critical operations (for example, TNS and alias lookups).

  6. Microsoft recommends that you have a local install of the Oracle client and not do this by mapping a remote Oracle client on your computer and then include it in the path of the system to connect to Oracle through ODBC/OLE DB. But the provider and driver are tested with a locally installed Oracle client and not on a network share.

See Also