Oracle Data Provider for .NET Assemblies

This section contains the following topics:

Oracle Data Provider for .NET, Unmanaged Driver Assemblies

The Oracle.DataAccess.dll assembly provides two namespaces:

  • The Oracle.DataAccess.Client namespace contains ODP.NET classes and enumerations for the client-side provider.

  • The Oracle.DataAccess.Types namespace contains the Oracle Data Provider for .NET data types (ODP.NET Types).

To use Code First or Entity Framework 6 or higher with ODP.NET, Unmanaged Driver, add Oracle.DataAccess.EntityFramework.dll as a project assembly reference. It contains the namespace Oracle.DataAccess.EntityFramework.

Oracle Data Provider for .NET, Managed Driver and ODP.NET Core Assemblies

The Oracle.ManagedDataAccess.dll assembly provides two namespaces:

  • The Oracle.ManagedDataAccess.Client namespace contains ODP.NET classes and enumerations for the client-side provider.

  • The Oracle.ManagedDataAccess.Types namespace contains the Oracle Data Provider for .NET data types (ODP.NET Types).

ODP.NET, Managed Driver contains additional assemblies. These assemblies are optional to install if not using the specific functionality.

Applications do not need to explicitly add these assemblies to their project. ODP.NET, Managed Driver will access these assemblies by default if installed.

The one exception is Oracle.ManagedDataAccess.EntityFramework.dll. That DLL must be explicitly added to a project for its functionality to be used.

  • Oracle.ManagedDataAccess.EntityFramework.dll - Only required when using Code First or Entity Framework 6 or higher. It contains the Oracle.ManagedDataAccess.EntityFramework namespace.

  • Oracle.ManagedDataAccessIOP.dll - Only required when using Kerberos. The assembly has 32-bit and x64 versions depending on the .NET Framework's bitness in which it runs. The assembly makes calls to unmanaged assemblies. Applications do not need to explicitly add this assembly to their project as ODP.NET is already configured to access this assembly by default.

Oracle.DataAccess.Client and Oracle.ManagedDataAccess.Client Namespaces

The Oracle.DataAccess.Client and Oracle.ManagedDataAccess.Client namespaces contains implementations of core ADO.NET classes and enumerations for ODP.NET, as well as ODP.NET specific classes.

The following tables list ODP.NET classes, enumerations, and types that are supported by the Oracle.DataAccess.Client and Oracle.ManagedDataAccess.Client namespaces. The tables indicate which of them are not supported by ODP.NET, Managed Driver, ODP.NET Core and/or by .NET stored procedures. All are supported by ODP.NET, Unmanaged Driver.

Oracle.DataAccess.Client and Oracle.ManagedDataAccess.Client

Table 1-1 lists the Oracle.DataAccess.Client and Oracle.ManagedDataAccess.Client classes and delegates.

Table 1-1 Oracle.DataAccess.Client and Oracle.ManagedDataAccess.Client

Class or Delegate Supported in the ODP.NET, Managed Driver Supported in the ODP.NET Core Supported in .NET Stored Procedures Description

OnChangeEventHandler Delegate

-

-

No

The OnChangedEventHandler event delegate represents the signature of the method that handles the notification.

OracleAQAgent Class

No

No

-

The OracleAQAgent class represents agents that may be senders or recipients of a message.

OracleAQDequeueOptions Class

No

No

-

An OracleAQDequeueOptions object represents the options available when dequeuing a message from an OracleAQQueue object.

OracleAQEnqueueOptions Class

No

No

-

The OracleAQEnqueueOptions class represents the options available when enqueuing a message to an OracleAQQueue.

OracleAQMessage Class

No

No

-

An OracleAQMessage object represents a message to be enqueued and dequeued.

OracleAQMessageAvailableEventArgs Class

No

No

-

The OracleAQMessageAvailableEventArgs class provides event data for the OracleAQQueue.MessageAvailable event.

OracleAQMessageAvailableEventHandler Delegate

No

No

-

The OracleAQMessageAvailableEventHandler delegate represents the signature of the method that handles the OracleAQQueue.MessageAvailable event.

OracleAQQueue Class

No

No

-

An OracleAQQueue object represents a queue.

OracleBulkCopy Class

No

No

-

An OracleBulkCopy object efficiently bulk loads or copies data into an Oracle table from another data source.

OracleBulkCopyColumnMapping Class

No

No

-

The OracleBulkCopyColumnMapping class defines the mapping between a column in the data source and a column in the destination database table.

OracleBulkCopyColumnMappingCollection Class

No

No

-

The OracleBulkCopyColumnMappingCollection class represents a collection of OracleBulkCopyColumnMapping objects that are used to map columns in the data source to columns in a destination table.

OracleClientFactory Class

-

No

-

An OracleClientFactory object allows applications to instantiate ODP.NET classes in a generic way.

OracleCommand Class

-

-

-

An OracleCommand object represents a SQL command, a stored procedure or function, or a table name.

OracleCommandBuilder Class

-

-

-

An OracleCommandBuilder object provides automatic SQL generation for the OracleDataAdapter when the database is updated.

OracleConfiguration Class

-

-

-

An OracleConfigurationis a static class for setting ODP.NET Core configuration data using a single programming interface.

OracleConnection Class

-

-

-

An OracleConnection object represents a connection to Oracle Database.

OracleConnectionOpenEventArgs Class

-

-

-

An OracleConnectionOpenEventArgs object provides connection information for the OracleConnection.Open() method.

OracleConnectionOpenEventHandler Delegate

-

-

-

The OracleConnectionOpenEventHandler delegate represents the signature of the method that handles OracleConnection.ConnectionOpen event.

OracleConnectionStringBuilder Class

-

-

-

An OracleConnectionStringBuilder object allows applications to create or modify connection strings.

OracleCredential Class

-

-

-

OracleCredentialclass provides a secure way to provide password while opening connection with Oracle Database using the ODP.NET driver

OracleDataAdapter Class

-

-

-

An OracleDataAdapter object represents a data provider object that communicates with the DataSet.

OracleDatabase Class

No

No

-

An OracleDatabase object represents an Oracle Database instance.

OracleDataReader Class

-

-

-

An OracleDataReader object represents a forward-only, read-only, in-memory result set.

OracleDataSourceCollection Class

-

-

-

An OracleDataSourceCollectionobject supports adding and deleting network service name (i.e. TNS) entries in the OracleDataSourceCollection.

OracleDataSourceEnumerator Class

-

-

-

An OracleDataSourceEnumerator object allows applications to generically obtain a collection of data sources to connect to.

OracleDependency Class

-

-

No

An OracleDependency class represents a dependency between an application and an Oracle database.

OracleError Class

-

-

-

The OracleError object represents an error reported by an Oracle database.

OracleErrorCollection Class

-

-

-

An OracleErrorCollection object represents a collection of OracleErrors.

OracleException Class

-

-

-

The OracleException object represents an exception that is thrown when Oracle Data Provider for .NET encounters an error.

OracleFailoverEventArgs Class

No

No

No

The OracleFailoverEventArgs class provides event data for the OracleConnection.Failover event.

OracleFailoverEventHandler Delegate

No

No

No

The OracleFailoverEventHandler represents the signature of the method that handles the OracleConnection.Failover event.

OracleGlobalization Class

-

-

-

The OracleGlobalization class is used to obtain and set the Oracle globalization settings of the session, thread, and local computer (read-only).

OracleHAEventArgs Class

-

-

-

The OracleHAEventArgs class provides event data for the OracleConnection.HAEvent event.

OracleHAEventHandler Delegate

-

-

-

The OracleHAEventHandler delegate represents the signature of the method that handles the OracleConnection.HAEvent event.

OracleInfoMessageEventArgs Class

-

-

-

The OracleInfoMessageEventArgs object provides event data for the OracleConnection.InfoMessage event.

OracleInfoMessageEventHandler Delegate

-

-

-

The OracleInfoMessageEventHandler delegate represents the signature of the method that handles the OracleConnection.InfoMessage event.

OracleLogicalTransaction Class

-

-

-

The OracleLogicalTransaction class provides detailed information about the logical transaction status.

OracleNotificationEventArgs Class

-

-

-

The OracleNotificationEventArgs class provides event data for a notification.

OracleNotificationRequest Class

-

-

No

An OracleNotificationRequest class represents a notification request to be subscribed in the database.

OracleOnsServerCollection Class

-

-

-

The OracleOnsServerCollectionclass supports adding to and deleting from a collection of logical servers with their corresponding list of nodes where the Oracle Notification Service (ONS) daemons are talking to their remote clients.

OracleParameter Class

-

-

-

An OracleParameter object represents a parameter for an OracleCommand.

OracleParameterCollection Class

-

-

-

An OracleParameterCollection object represents a collection of OracleParameters.

OraclePermission Class

-

No

-

An OraclePermission object enables ODP.NET to enforce imperative security and helps ensure that a user has a security level adequate for accessing data.

OraclePermissionAttribute Class

-

No

-

An OraclePermissionAttribute object enables ODP.NET to enforce declarative security and helps ensure that a user has a security level adequate for accessing data.

OracleRowsCopiedEventHandler Delegate

No

No

-

The OracleRowsCopiedEventHandler delegate represents the method that handles the OracleRowsCopied event of an OracleBulkCopy object.

OracleRowsCopiedEventArgs Class

No

No

-

The OracleRowsCopiedEventArgs class represents the set of arguments passed as part of event data for the OracleRowsCopied event.

OracleRowUpdatedEventArgs Class

-

-

-

The OracleRowUpdatedEventArgs object provides event data for the OracleDataAdapter.RowUpdated event.

OracleRowUpdatedEventHandler Delegate

-

-

-

The OracleRowUpdatedEventHandler delegate represents the signature of the method that handles the OracleDataAdapter.RowUpdated event.

OracleRowUpdatingEventArgs Class

-

-

-

The OracleRowUpdatingEventArgs object provides event data for the OracleDataAdapter.RowUpdating event.

OracleRowUpdatingEventHandler Delegate

-

-

-

The OracleRowUpdatingEventHandler delegate represents the signature of the method that handles the OracleDataAdapter.RowUpdating event.

OracleShardingKey Class

No

No

-

An OracleShardingKey object can represent either a sharding key or a super sharding key.

OracleTransaction Class

-

-

No

An OracleTransaction object represents a local transaction.

OracleXmlQueryProperties Class

-

-

-

An OracleXmlQueryProperties object represents the XML properties used by the OracleCommand class when the XmlCommandType property is Query.

OracleXmlSaveProperties Class

-

-

-

An OracleXmlSaveProperties object represents the XML properties used by the OracleCommand class when the XmlCommandType property is Insert, Update, or Delete.

Oracle.DataAccess.Client and Oracle.ManagedDataAccess.Client Enumerations

Table 1-2 lists the client enumerations.

Table 1-2 Oracle.DataAccess.Client and Oracle.ManagedDataAccess.Client Enumerations

Enumeration Supported in the ODP.NET, Managed Driver and ODP.NET Core Supported in .NET Stored Procedures Description

FailoverEvent Enumeration

No

No

FailoverEvent enumerated values are used to specify the state of the failover.

FailoverReturnCode Enumeration

No

No

FailoverReturnCode enumerated values are passed back by the application to the ODP.NET provider to request a retry in case of a failover error, or to continue in case of a successful failover.

FailoverType Enumeration

No

No

FailoverType enumerated values are used to indicate the type of failover event that was raised.

OracleAQDequeueMode Enumeration

No

-

The OracleAQDequeueMode enumeration type specifies the dequeue mode.

OracleAQMessageDeliveryMode Enumeration

No

-

The OracleAQMessageDeliveryMode enumeration type specifies the delivery mode of the message.

OracleAQMessageState Enumeration

No

-

The OracleAQMessageState enumeration type identifies the state of the message at the time of dequeue.

OracleAQMessageType Enumeration

No

-

The OracleAQMessageType enumeration type specifies the message payload type.

OracleAQNavigationMode Enumeration

No

-

The OracleAQNavigationMode enumeration type specifies the navigation mode.

OracleAQNotificationGroupingType Enumeration

No

-

The OracleAQNotificationGroupingType enumeration type specifies the notification grouping type.

OracleAQNotificationType Enumeration

No

-

The OracleAQNotificationType enumeration type specifies the notification type of the received notification.

OracleAQVisibilityMode Enumeration

No

-

The OracleAQVisibilityMode enumeration type specifies whether the enqueue or dequeue operation is part of the current transaction.

OracleBulkCopyOptions Enumeration

No

-

The OracleBulkCopyOptions enumeration specifies the values that can be combined with an instance of the OracleBulkCopy class and used as options to determine its behavior and the behavior of the WriteToServer methods for that instance.

OracleCollectionType Enumeration

-

No

OracleCollectionType enumerated values specify whether or not the OracleParameter object represents a collection, and if so, specifies the collection type.

OracleConnectionType Enumeration

No

-

OracleConnectionType enumerated values specify whether a particular connection object is associated with an Oracle database connection, a TimesTen database connection, or no physical connection at all.

OracleDBShutdownMode Enumeration

No

-

OracleDBShutdownMode enumerated values specify the database shutdown options.

OracleDBStartupMode Enumeration

No

-

OracleDBStartupMode enumerated values specify the database startup options.

OracleDbType Enumeration

-

-

OracleDbType enumerated values are used to explicitly specify the OracleDbType of an OracleParameter.

OracleDRCPPurity Enumeration

-

-

OracleDRCPPurity enumerated values specify the session purity.

OracleHAEventSource Enumeration

-

-

The OracleHAEventSource enumeration indicates the source of the HA event.

OracleHAEventStatus Enumeration

-

-

The OracleHAEventStatus enumeration indicates the status of the HA event source.

OracleIdentityType Enumeration

-

-

The OracleIdentityType enumeration specifies how Oracle identity column values are generated.

OracleNotificationInfo Enumeration

-

No

OracleNotificationInfo enumerated values specify the database event that causes the notification.

OracleNotificationSource Enumeration

-

No

OracleNotificationSource enumerated values specify the different sources that cause notification.

OracleNotificationType Enumeration

-

No

OracleNotificationType enumerated values specify the different types that cause the notification.

OracleParameterStatus Enumeration

-

-

The OracleParameterStatus enumeration type indicates whether a NULL value is fetched from a column, or truncation has occurred during the fetch, or a NULL value is to be inserted into a database column.

OracleRowidInfo Enumeration

-

-

The OracleRowidInfo enumeration values specify whether ROWID information is included as part of the ChangeNotificationEventArgs or not

OracleXmlCommandType Enumeration

-

-

The OracleXmlCommandType enumeration specifies the values that are allowed for the OracleXmlCommandType property of the OracleCommand class.

Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types Namespaces

The Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types namespaces provides classes, structures, and exceptions for Oracle native types that can be used with Oracle Data Provider for .NET.

Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types Structures

Table 1-3 lists the type structures.

Table 1-3 Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types Structures

Structure Description

OracleBinary Structure

The OracleBinary structure represents a variable-length stream of binary data.

OracleBoolean Structure

The OracleBoolean structure represents a logical value that is either TRUE or FALSE.

OracleDate Structure

The OracleDate structure represents the Oracle DATE data type.

OracleDecimal Structure

The OracleDecimal structure represents an Oracle NUMBER in the database or any Oracle numeric value.

OracleIntervalDS Structure

The OracleIntervalDS structure represents the Oracle INTERVAL DAY TO SECOND data type.

OracleIntervalYM Structure

The OracleIntervalYM structure represents the Oracle INTERVAL YEAR TO MONTH data type.

OracleString Structure

The OracleString structure represents a variable-length stream of characters.

OracleTimeStamp Structure

The OracleTimeStamp structure represents the Oracle TimeStamp data type.

OracleTimeStampLTZ Structure

The OracleTimeStampLTZ structure represents the Oracle TIMESTAMP WITH LOCAL TIME ZONE data type.

OracleTimeStampTZ Structure

The OracleTimeStampTZ structure represents the Oracle TIMESTAMP WITH TIME ZONE data type.

Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types Exceptions

Type Exceptions are thrown only by ODP.NET type structures. Table 1-4 lists the type exceptions.

Table 1-4 Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types Exceptions

Exception Description

OracleTypeException Class

The OracleTypeException object is the base exception class for handling exceptions that occur in the ODP.NET Types classes.

OracleNullValueException Class

The OracleNullValueException represents an exception that is thrown when trying to access an ODP.NET Types structure that is null.

OracleTruncateException Class

The OracleTruncateException class represents an exception that is thrown when truncation in an ODP.NET Types class occurs.

Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types Classes

Table 1-5 lists the type classes.

Table 1-5 Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types Classes

Class Supported in the ODP.NET, Managed Driver and ODP.NET Core Description

OracleArrayMappingAttribute Class

No

The OracleArrayMappingAttribute class is required to mark a custom class field or property with information that ODP.NET uses when a custom type represents an Oracle Collection type.

OracleBFile Class

-

An OracleBFile is an object that has a reference to BFILE data. It provides methods for performing operations on BFILE objects.

OracleBlob Class

-

An OracleBlob object is an object that has a reference to BLOB data. It provides methods for performing operations on BLOB objects.

OracleClob Class

-

An OracleClob is an object that has a reference to CLOB data. It provides methods for performing operations on CLOB objects.

OracleCustomTypeMappingAttribute Class

No

The OracleCustomTypeMappingAttribute class is used to mark a custom type factory class or struct with information that is used by ODP.NET when a custom type is used to represent an Oracle UDT.

OracleObjectMappingAttribute Class

No

The OracleObjectMappingAttribute class marks custom class fields or properties with information that ODP.NET uses when a custom type represents an Oracle Object type.

OracleRef Class

No

An OracleRef instance represents an Oracle REF, which references a persistent, standalone, referenceable object that resides in the database. The OracleRef object provides methods to insert, update, and delete the Oracle REF.

OracleRefCursor Class

-

An OracleRefCursor object represents an Oracle REF CURSOR.

OracleUdt Class

No

The OracleUdt class defines static methods that are used when converting between Custom Types and Oracle UDTs and vice-versa.

OracleXmlStream Class

-

An OracleXmlStream object represents a sequential read-only stream of XML data stored in an OracleXmlType object.

OracleXmlType Class

-

An OracleXmlType object represents an Oracle XmlType instance.

Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types Interfaces

Table 1-6 lists the type interfaces.

Table 1-6 Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types Interfaces

Interface Supported in the ODP.NET, Managed Driver and ODP.NET Core Description

IOracleArrayTypeFactory Interface

No

The IOracleArrayTypeFactory interface is used by ODP.NET to create arrays that represent Oracle Collections.

IOracleCustomType Interface

No

IOracleCustomType is an interface for converting between a Custom Type and an Oracle Object or Collection Type.

IOracleCustomTypeFactory Interface

No

The IOracleCustomTypeFactory interface is used by ODP.NET to create custom objects that represent Oracle Objects or Collections.

INullable Interface

-

The INullable interface is used to determine whether or not an ODP.NET type has a NULL value.

Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types Enumerations

Table 1-7 lists the type enumerations.

Table 1-7 Oracle.DataAccess.Types and Oracle.ManagedDataAccess.Types Enumerations

Enumeration Supported in the ODP.NET, Managed Driver and ODP.NET Core Description

OracleUdtFetchOption Enumeration

No

OracleUdtFetchOption enumeration values specify how to retrieve a copy of the referenceable object.

OracleUdtStatus Enumeration

No

OracleUdtStatus enumeration values specify the status of an object attribute or collection element. An object attribute or a collection element can be a valid value or a null value.