|
Q: I am familiar with SQL Server's
.NET data provider, but am new to Oracle. Is it easy to learn to use ODP.NET?
A: Yes. ODP.NET inherits from all the ADO.NET base
classes, which is what SQL Server's .NET data provider, SqlClient, is based
upon. The ADO.NET constructors, methods, and properties that you use with SQL
Server will be the same with Oracle. For many applications, the only notable
differences will be having all objects that were preceded with "Sql", such as
SqlConnection, be preceded by "Oracle", such as OracleConnection, and
accounting for differences between Oracle and SQL Server database data types,
SQL, and stored procedure calls. With ADO.NET 2.0 factory classes, many of
these differences go away and make it even easier to use ODP.NET.
Q: What are the different ways
Oracle integrates with Microsoft .NET?
A: Oracle integrates with .NET in a number of ways. For
optimized .NET data access, ODP.NET
enables access to all of the Oracle database's advanced features, such as RAC
and XML DB, while ensuring the fastest performance from the .NET Framework.
For .NET development tools that make Oracle easier to use, the
Oracle Developer Tools for Visual Studio .NET
provide wizards and designers that auto-generate ODP.NET code and can browse
and edit schemas and stored procedures. Additionally, it includes a Data Window
to modify and view data and context-sensitive help.
Beginning with Oracle Database 10g Release 2, developers can build and deploy
.NET stored procedures
for their Oracle database.
For application integration, web services
can facilitate integration between your existing Oracle and .NET applications.
Q: Are all these Oracle on .NET
features part of Oracle Database Express Edition (XE)?
A: ODP.NET, Oracle Developer Tools for Visual Studio
.NET, and .NET stored procedures are all included as part of
Oracle Database XE.
Q: Where can I find ODP.NET help
and sample code?
A: ODP.NET documentation is available from within Visual
Studio .NET using Dynamic Help. Just hit the F1 key when your cursor is
on an ODP.NET API and a help page for that API will appear right within Visual
Studio .NET.
Additional ODP.NET documentation is available both locally installed and from
the ODP.NET documentation page
.
Sample code can be found both locally as part of the ODP.NET installation (e.g.
c:\oracle\<Oracle Home Name>\ODP.NET\samples) and on
ODP.NET samples page
.
ODP.NET users can ask questions on the
ODP.NET discussion forum
.
Q: I have ODP.NET installed, but I
can't find the ODP.NET Dynamic Help. Where is it?
A: This behavior sometimes occurs when installing new
Visual Studio .NET versions over an ODP.NET installation. To enable
ODP.NET Dynamic Help, go to Visual Studio .NET Combined Help Collection Manager
located in Visual
Studio .NET 2002,
Visual Studio .NET 2003, or
Visual Studio 2005. Make sure the box next to the Oracle Data Provider
for .NET Help is checked and click on the Update VSCC button. Close
Visual Studio .NET and re-open it to enable ODP.NET Dynamic Help.
Note: Because of security restrictions, you may need to
copy and paste the links above to a browser, rather than clicking on them. Once
copied to a local browser, if you have a Windows service pack that prevents
active content (e.g. Windows XP service pack 2), you will need to allow active
content to view the complete page. To do this, click on the yellow bar at the
top of the Visual Studio .NET Combined Help Collection Manager page, which
indicates active content has been blocked. Select "Allow Blocked Content". A
security warning will show up. Click "Yes" and you will be able to view the
page in its entirety, including having the option to incorporate the Oracle
Data Provider for .NET Help into Visual Studio .NET.
Q: What are the new features in
this version of ODP.NET?
A:
New ODP.NET features organized by release can be found
here.
Q: How do I make a feature
enhancement request for ODP.NET?
A: You can email the ODP.NET product manager, alex.keh
[at] oracle.com, with any ODP.NET feature requests you have.
Q: What features will ODP.NET
support in future releases?
A: In general, Oracle does not discuss features in
future product releases until the release date nears. We are well aware of
enhancement requests made through the ODP.NET discussion forum and Oracle
support. We encourage Oracle users to continue to make their requests known.
Oracle will do its best to fulfill these requests in future releases.
Q: What versions of ODP.NET support
ADO.NET 2.0 and 3.0?
A: Beginning with ODP.NET 10.2.0.2.20, ADO.NET 2.0 and
1.x are supported, each with its own set of ODP.NET binaries. For example, in
ODP.NET 10.2.0.2, Oracle.DataAcess.dll 1.102.2.x supports the .NET Framework
1.x and Oracle.DataAcess.dll 2.102.2.x supports the .NET Framework 2.0. Oracle
will continue releasing new providers for ADO.NET 1.x in future releases.
With the introduction of .NET 3.0, Oracle has certified ODP.NET
10.2.0.2.20 for .NET 3.0. No Oracle code or configuration changes
are required if your application already works with .NET 2.0.
Q: Does ODP.NET support Windows Vista?
If so, what versions of ODP.NET?
A: For ADO.NET 1.x, ODP.NET for Windows Vista is included
as part of Oracle Database 10g Release 2 (10.2.0.3), which can be downloaded from
OTN.
For 32-bit ADO.NET 2.0 and higher, Oracle Data Access Components (ODAC) 10.2.0.2.21 and
Oracle Database 11g support Windows Vista. ODAC 10.2.0.2.21 or higher can be downloaded
from the
ODAC download page.
Q: In ODP.NET 10.2.0.2 and
higher, why does the same ODP.NET provider have two different version numbers?
A: For ODP.NET 10.2.0.2 and higher, the same ODP.NET
binaries have two different version numbers when viewed from either .NET
products (e.g. Visual Studio 2005 would see version 2.102.2.20) or when viewed
from Oracle products (e.g. Oracle Universall Installer would see version
10.2.0.2.20). Prior to ODP.NET 10.2.0.2, the latter versioning was employed
exclusively. The use the second versioning method was necessary to properly
support .NET policy files for .NET Framework 1.x and 2.0.
For further details, read the versioning scheme section of Chapter 2 of the Oracle
Data Provider for .NET (10.2.0.2 or higher) Developer's Guide
.
Q: Do I need to install ODP.NET
on my Oracle database server?
A: No. You only need to install ODP.NET for running
client or middle-tier .NET applications. The exception is if you are using .NET
stored procedures in the database server. The server-side ODP.NET provider will
automatically be installed with the Oracle Database Extensions for .NET.
Q: Can ODP.NET work with Oracle8,
Oracle8i, Oracle9i, and Oracle10g database (DB)
servers? Can these DB servers be on Linux or Unix?
A: Yes and yes. Oracle clients can support older and
newer versions of the Oracle database. Consult the
Oracle on Windows FAQ for more information.
Oracle clients on Windows can work with Oracle database servers on any
platform.
Q: Can ODP.NET be used with an Oracle8,
Oracle8i, or Oracle9i Release 1 client?
A: No. You need to use the Oracle9i Release 2 or
higher client.
Q: What do I need to have
installed on my client machine to have ODP.NET work?
A: You will require the following:
Windows Operating Sytem
- 32-bit: Windows Vista (Business, Enterprise, and Ultimate Editions), Windows Server 2003,
Windows Server 2003 R2, Windows XP Professional, or Windows 2000
- 64-bit AMD64/EM64T: Windows Server 2003 x64, Windows Server 2003 R2 x64, or Windows XP x64
- 64-bit Itanium: Windows Server 2003
Microsoft .NET Framework 1.0 or higher
Oracle9i Client Release 2 (9.2) or higher (included with ODP.NET installation)
Oracle Net Services (included with ODP.NET installation)
Oracle Services for Microsoft Transaction Server, Release 2 (9.2) or higher.
This is required for applications using distributed transacations.
Q: Is 64-bit ODP.NET supported?
A: 64-bit ODP.NET for 64-bit Windows x64 (AMD64 and EM64T) and for 64-bit Windows Itanium can
be downloaded here.
Q: How do I use distributed
transactions with ODP.NET?
A: The Oracle
Services for MTS (OraMTS) is required for distributed transaction
support with COM+/Enterprise Services/Microsoft Transaction Server. OraMTS is
available to download for free on OTN.
Q: I have two .NET applications on
the same machine running two different versions of ODP.NET. How do I ensure
both these applications use the correct ODP.NET version?
A: Beginning with ODP.NET 10.1.0.3, the Oracle installer
will register the following publisher policy DLLs in the Global Assembly Cache
(GAC) that redirect 9.2, 10.1 and 10.2 ODP.NET applications to use the last
installed version of ODP.NET: Policy.9.2.Oracle.DataAccess.dll and
Policy.10.1.Oracle.DataAccess.dll.
ODP.NET 9.2 includes just the first policy DLL above. These policy files ensure
that all your ODP.NET applications use the most recently installed version of
ODP.NET.
You may undo the redirection manually. Policy DLLs can be de-installed through
gacutil.exe using the /u option. Another approach is to navigate to the GAC
directory (i.e. C:\WINNT\assembly) through the Windows Explorer and delete the
policy folders. That will eliminate any policy enforcement for all your ODP.NET
applications.
If you have applications on the same machine using different ODP.NET versions,
you should create an application-specific policy file.
Q: How can I run two applications concurrently when each one uses
different unmanaged Oracle clients installed side by side?
A:
ODP.NET consists of both managed (Oracle.DataAccess.dll) and unmanaged .NET files.
Follow these steps to be able to run multiple
applications concurrently with different Oracle client versions. These
instructions apply when using two or more versions of Oracle Client on the same
machine.
Note: Make sure your .NET policy files refer to the ODP.NET version you want
your applications to use, especially if you install a newer version of ODP.NET
on your system.
General Installation
If you have one Oracle client already installed, ensure that you don't
overwrite this previously installed Oracle Home when you install the next
Oracle client. Upon reaching the Oracle client install's "File Locations"
screen, enter in a directory name different from the previous Oracle client
installation.
Automatic Switching Between Oracle Homes with No Setup Required
In ODP.NET 10.2.0.2.20 and higher, ODP.NET can run more than one active
Oracle Home concurrently without requiring any special setup by the
administrator.
When ODP.NET is installed, the DLL
search path will be based on the following order:
i) directory of the application/executable
ii) directory specified by
HKEY_LOCAL_MACHINE\Software\Oracle\ODP.NET\<version>\DllPath
iii) directories specified by the PATH environment variable
Upon an ODP.NET installation, the DllPath registry value of type REG_SZ will
be set to the %ORACLE_HOME%\bin directory where the corresponding dependent
DLLs are installed.
Note that the DllPath registry value takes effect only on Windows XP,
Windows Server 2003, and Windows Server 2003 R2. On Windows 2000, ODP.NET
will simply rely on the application directory and PATH for loading dependent
unmanaged DLLs.
Installation for Relases Prior to ODP.NET 10.2.0.2.20
The last Oracle Home you install will
be the client your .NET applications will use. For example, if you
installed the Oracle10g Release 2 client last, this will be the client
version all Oracle10g applications on your system will use. The only
exception is that applications using a different major Oracle client version
will not use this latest installed client. For example, applications using the
Oracle9i and Oracle8i clients will not use Oracle10g
client DLLs when it is installed. Those applications will still use the Oracle
client it was using previously. Note that .NET policy files only dictate which
.NET assemblies are used, not what Oracle client files are used.
If you wish for applications using the same major Oracle client version to use
different minor Oracle client versions (e.g. different versions of Oracle10g
client), you will need to do some additional configuration. Oracle uses the
Windows System Path to determine which Oracle client files an application
calls. You can read more about
Windows' DLL search order and the System Path.
Automatic Switching Between Oracle Homes for Relases Prior to ODP.NET 10.2.0.2.20
Automatic switching among Oracle Homes is preferred when running multiple
applications concurrently that require different client versions.
In a client/server environment, where each application runs as a separate
process, it is possible to specify a different System Path for each
concurrently running application. Every executable or Windows shortcut can be
given a separate Oracle Home working directory in which it will load its Oracle
client files from. Alternatively, a batch file that sets the application's
System Path can be run prior to loading the ODP.NET application. Thus, each
application can retain its own System Path with its own Oracle client. This
allows each application to upgrade or patch its own Oracle client independently
without affecting other Oracle client applications.
Many Oracle applications run on Microsoft Internet Information Services (IIS).
Previously, IIS was a single process application without the ability to assign
a different System Path to each running web application using the same IIS
instance. With IIS 6 on Windows Server 2003, IIS supports multiple processes
for the same instance. Since each application has its own IIS process, each web
application can be assigned a different System Path directory with its own
Oracle Home.
Microsoft documentation provides information on IIS
worker process isolation and application pools.
To set up multiple active Oracle Homes running concurrently on the same IIS server:
1) Run IIS 6 in worker process isolation mode on Windows Server 2003
2) Deploy one version of the Oracle Client to one application pool and the second
version to another application pool. For example, you can have Oracle Client
9.2.0.2 and ODP.NET 9.2.0.2 be used by one application pool. And Oracle Client
9.2.0.4 and ODP.NET 9.2.0.4 can be employed by another
application pool. You won't be able to use two active Oracle Homes in the
same application pool. Each active Oracle Home must be in a different pool.
3) Set the DLL directory for each worker process to use the appropriate Oracle
Home client directory. To do this, within each ASP.NET application, call
SetDllDirectory(directory_name) early in the application
lifecycle before any Oracle DLLs are called. The SetDllDirectory input
variable is the Oracle Home bin directory of the ODP.NET version used. Note:
SetDllDirectory is an unmanaged call.
Manually Switching between Active Oracle Homes
You can manually switch which Oracle client version your applications use
through the
Oracle Home Selector.
The Oracle Home Selector changes your System Path
settings so that the Oracle client you specify is the one used by applications
on your system that share the same major Oracle client version. Once changed, any
newly launched Oracle client applications will use this new Home.
Already running applications
will continue to use the Oracle Home they had been using before.
Q: I get an error: "Unable to
load DLL (OraOps.dll)". How do I fix this?
A: First, ensure the OraOps.dll file is in your Oracle
bin directory (e.g. d:\oracle\ora92\bin\). Next, check that your Oracle bin
directory is in the Windows system path. If either of these are not present,
re-install ODP.NET. Depending on the application, you may have to restart the
application (e.g. Windows Service) or reboot the computer (e.g. ODP.NET install
makes changes to the PATH) for ODP.NET installation to be complete. If your
ODP.NET installation is still not working, you may be running into this
problem.
Q: I want to use the Oracle9i
Release 2 version of OraMTS with an Oracle8i database. I get a "No
error information available: XACT_E_NOENLIST(0x8004D00A)" error when running an
application using OraMTS.
A: These are two known issues with OraMTS. These
problems can be resolved if you upgrade to
OraMTS version 9.2.0.1.1 or higher.
Q: Are ODP.NET and Microsoft
.NET Framework Data Provider for Oracle the same product?
A: No, these are two separate products. Both provide
data access to the Oracle database. However, ODP.NET is developed by Oracle and
provides more functionality and faster performance than the Microsoft .NET
Framework Data Provider for Oracle. Oracle recommends you use ODP.NET.
Q: Which .NET data access driver should I use
among ODP.NET, Microsoft .NET Framework Data Provider for Oracle, OLE DB .NET,
and ODBC .NET?
A: ODP.NET offers more functionality and better
performance over the Microsoft .NET Framework Data Provider for Oracle, OLE DB
.NET, and OLE DB .NET.
Q: I bundle ODP.NET with
an application I've built, which I want to distribute or sell. Does Oracle
charge licensing fees for this?
A: In most cases, Oracle does not charge any fees for
distributing the Oracle client nor ODP.NET with a third-party application.
However, it is best to consult the licensing agreement from which you acquired
rights to the Oracle software. If you purchased Oracle licenses directly from
Oracle, consult your Oracle licensing contract or your Oracle sales
representative. If you downloaded ODP.NET from OTN, consult the licensing
agreement that you agreed to prior to downloading the software.
Top of Page
| Copyright and Corporate Info
|