Differences between the ODP.NET Drivers

ODP.NET, Managed Driver, ODP.NET, Unmanaged Driver, and ODP.NET Core have a number of configuration setting differences.

Table 8 Application Programming Interfaces not supported in ODP.NET, Managed Driver and ODP.NET Core

Namespace Class/Enumeration/Interface Unsupported Method/Property/Event
Oracle.ManagedDataAccess.Client FailoverEvent enumeration All
Oracle.ManagedDataAccess.Client FailoverReturnCode enumeration All
Oracle.ManagedDataAccess.Client FailoverType enumeration All
Oracle.ManagedDataAccess.Client OracleAQAgent class All
Oracle.ManagedDataAccess.Client OracleAQDequeueuMode enumeration All
Oracle.ManagedDataAccess.Client OracleAQDequeueOptions class All
Oracle.ManagedDataAccess.Client OracleAQEnqueueOptions class All
Oracle.ManagedDataAccess.Client OracleAQMessage class All
Oracle.ManagedDataAccess.Client OracleAQMessageAvailableEventArgs class All
Oracle.ManagedDataAccess.Client OracleAQMessageAvailableEventHandler class All
Oracle.ManagedDataAccess.Client OracleAQMessageDeliveryMode enumeration All
Oracle.ManagedDataAccess.Client OracleAQMessageState enumeration All
Oracle.ManagedDataAccess.Client OracleAQMessageType enumeration All
Oracle.ManagedDataAccess.Client OracleAQNavigationMode enumeration All
Oracle.ManagedDataAccess.Client OracleAQNotificationGroupingType enumeration All
Oracle.ManagedDataAccess.Client OracleAQNotificationType enumeration All
Oracle.ManagedDataAccess.Client OracleAQQueue class All
Oracle.ManagedDataAccess.Client OracleAQVisibilityMode enumeration All
Oracle.ManagedDataAccess.Client OracleClientFactory class Not supported in ODP.NET Core only
Oracle.ManagedDataAccess.Client OracleCommand class ArrayBindRowsAffected property
Oracle.ManagedDataAccess.Client OracleCommand class ImplicitRefCursors property
Oracle.ManagedDataAccess.Client OracleConfiguration class Most members not supported in ODP.NET, Unmanaged Driver only
Oracle.ManagedDataAccess.Client OracleConnection class FlushCache() method
Oracle.ManagedDataAccess.Client OracleConnection class Failover event
Oracle.ManagedDataAccess.Client OracleConnection class ConnectionType property
Oracle.ManagedDataAccess.Client OracleConnection class

EnlistDistributedTransaction(ITransaction) method

Not supported in ODP.NET Core only

Oracle.ManagedDataAccess.Client OracleConnection class

The properties BindByName, CommandTimeout, ChunkMigrationConnectionTimeout, FetchSize, KeepAlive, KeepAliveInterval, KeepAliveTime, MaxStatementCacheSize, Pipelining, ServiceRelocationConnectionTimeout, TnsAdmin, WalletLocation, and UseClientInitiatedCQN

Not supported in ODP.NET Unmanaged Driver only

Oracle.ManagedDataAccess.Client OracleConnectionType enumeration All
Oracle.ManagedDataAccess.Client OracleDataSourceCollection class Not supported in ODP.NET Unmanaged Driver only
Oracle.ManagedDataAccess.Client OracleDBShutdownMode enumeration All
Oracle.ManagedDataAccess.Client OracleDBStartupMode enumeration All
Oracle.ManagedDataAccess.Client OracleDataReader class

GetOracleBlobForUpdate() method

If the method is called, then a NotSupportedException is thrown.

Oracle.ManagedDataAccess.Client OracleDataReader class

GetOracleClobForUpdate() method

If the method is called, then a NotSupportedException is thrown.

Oracle.ManagedDataAccess.Client OracleDataReader class IsAutoIncrement and IdentityType properties of the GetSchemaTable
Oracle.ManagedDataAccess.Client OracleDataAdapter class IdentityInsert property
Oracle.ManagedDataAccess.Client OracleDataAdapter class IdentityUpdate property
Oracle.ManagedDataAccess.Client OracleDataAdapter class SafeMapping property
Oracle.ManagedDataAccess.Client OracleDatabase class All
Oracle.ManagedDataAccess.Client OracleException class IsRecoverable property
Oracle.ManagedDataAccess.Client OracleFailoverEventArgs class All
Oracle.ManagedDataAccess.Client OracleFailoverEventHandler class All
Oracle.ManagedDataAccess.Client OracleGlobalization class ClientCharacterSet property
Oracle.ManagedDataAccess.Client OracleGlobalization class GetClientInfo() method
Oracle.ManagedDataAccess.Client OracleGlobalization class GetThreadInfo() method
Oracle.ManagedDataAccess.Client OracleGlobalization class SetThreadInfo() method
Oracle.ManagedDataAccess.Client OracleIdentityType enumeration All
Oracle.ManagedDataAccess.Client OracleNotificationRequest class GroupingInterval property
Oracle.ManagedDataAccess.Client OracleNotificationRequest class GroupingNotificationEnabled property
Oracle.ManagedDataAccess.Client OracleNotificationRequest class GroupingType property
Oracle.ManagedDataAccess.Client OracleOnsServerCollection class Not supported in ODP.NET Unmanaged Driver only
Oracle.ManagedDataAccess.Client OraclePermission class Not supported in ODP.NET Core only
Oracle.ManagedDataAccess.Client OraclePermissionAttribute class Not supported in ODP.NET Core only
Oracle.ManagedDataAccess.Client OracleRowsCopiedEventArgs class All
Oracle.ManagedDataAccess.Client OracleRowsCopiedEventHandler class All
Oracle.ManagedDataAccess.Client IOracleCustomType interface Equivalent functionality available in all providers with differences in parameters.
Oracle.ManagedDataAccess.Types OracleRef class

The following unmanaged ODP.NET class members are not supported in managed and core:

  • Constructors

    • OracleRef(OracleConnection conn, string udtTypeName, string objTableName)

    • OracleRef(OracleConnection conn, string hexStr)

  • Methods

    • Flush()

    • GetCustomObject(OracleUdtFetchOption fetchOption, int depthLevel)

    • GetCustomObjectForUpdate(bool bWait)

    • GetCustomObjectForUpdate(bool bWait, int depthLevel)

    • Lock(bool bWait)

  • Properties

    • HasChanges {get}

    • ObjectTableName {get}

Oracle.ManagedDataAccess.Types OracleTimestampTZ structure OracleTimeStampTZ(DateTime dt, string timeZone) constructor. This constructor is supported but the timeZone must be an hour offset.
Oracle.ManagedDataAccess.Types OracleUdt class All providers have same APIs or equivalent APIs with differences in parameters.

See Also: Oracle Data Provider for .NET, Managed Driver Configuration and Configuration Differences among ODP.NET Drivers for more information about ODP.NET, Managed Driver .NET configuration settings. Distributed Transactions for information about distributed transaction setup difference. Oracle Data Provider for .NET Core Configuration for more information about configuring ODP.NET Core.