# Package oracle.jdbc

Beginning in Oracle9i, the Oracle extensions to JDBC are captured in the package `oracle.jdbc`.

See: Description

Interface Summary
AdditionalDatabaseMetaData: This interface defines additional Oracle specific methods for DatabaseMetaData.
LogicalTransactionId: The logical transaction id is a globally unique id that uniquely defines a database transaction from the application perspective.
LogicalTransactionIdEventListener: A class that is interested in processing Logical Transaction Id events must implement this interface.
NotificationRegistration: This interface is extended by oracle.jdbc.aq.AQNotificationRegistration and oracle.jdbc.dcn.DatabaseChangeRegistration.
OracleArray: This interface defines the Oracle extensions to the standard JDBC interface `Array`.
OracleBfile: This interface defines methods for Oracle specific Bfile.
OracleBlob: This interface defines the Oracle extensions to the standard JDBC interface `Blob` .
OracleCallableStatement: This interface extends the `OraclePreparedStatement` (which extends the `OracleStatement` interface) and incorporates standard JDBC callable statement functionality.
OracleClob: This interface extends the standard JDBC interface `Clob` and defines methods for Oracle specific Clob .
OracleConnection: This interface defines the Oracle extensions to the standard JDBC interface `java.sql.Connection`.
OracleConnectionBuilder: A builder created from a `OracleDataSource` object, used to establish a connection to the database that the `OracleDataSource` object represents.
OracleConnectionStringBuilder
OracleData: Oracle interface for customize user-defined types.
OracleDataFactory: OracleData factory interface.
OracleNClob: This interface extends the standard JDBC interface `NClob` and defines methods for Oracle specific NClob .
OracleOCIFailover: An interface for Transparent Application failover.
OracleOpaque: This interface defines methods for Oracle specific Opaque.
OracleParameterMetaData: This interface defines the Oracle extensions to the standard JDBC interface `java.sql.ParameterMetaData`.
OraclePooledConnectionBuilder: A builder created from a `OracleConnectionPoolDataSource` object, used to establish a connection to the database that the `OracleConnectionPoolDataSource` object represents.
OraclePreparedStatement: This interface defines the Oracle extensions to the standard JDBC interface `java.sql.PreparedStatement`.
OracleRef: This interface defines the Oracle extensions to the standard JDBC interface `Ref`.
OracleResultSet: A table of data representing a database result set, which is usually generated by executing a statement that queries the database.
OracleResultSetMetaData: An object that can be used to get information about the types and properties of the columns in a ResultSet object.
OracleSavepoint: This interface defines the Oracle extensions to the standard JDBC interface `java.sql.Savepoint`.
OracleShardingKey: Interface used to indicate that this object represents a Oracle Sharding Key.
OracleShardingKeyBuilder: A builder created from a `OracleDataSource` or `OracleXADataSource` or `OracleConnectionPoolDataSource` object, used to create a `OracleShardingKey` with sub-keys of supported data types.
OracleStatement: This interface defines the Oracle extensions to the standard JDBC interface `java.sql.Statement` and is the superinterface of the `OraclePreparedStatement` and `OracleCallableStatement` interfaces.
OracleStruct: This interface defines the Oracle extensions to the standard JDBC interface `Struct`.
OracleTranslatingConnection: Declares convenience methods to get non translating Statements, PreparedStatements or CallableStatements from a SQL Translation enabled connection.
OracleTypeMetaData: This extension defines methods for meta data describing Oracle specific Types.
OracleTypeMetaData.Array: This nested interfacet defines additional methods for array types
OracleTypeMetaData.Opaque: This nested interface defines additional methods for opaque types
OracleTypeMetaData.Struct: This nested interface defines additional methods for struct types
OracleXAConnectionBuilder: A builder created from a `OracleXADataSource` object, used to establish a connection to the database that the `OracleXADataSource` object represents.
StructMetaData: An interface to get information about structured column types.

Class Summary
LogicalTransactionIdEvent: The event that corresponds to a new Logical Transaction Id.
OracleConnectionStringBuilder.ConnectInfo: This class represents the ADDRESS node of the TNS Connect String.
OracleConnectionWrapper: A simple implementation of a connection wrapper which may be nested to any depth.
OracleDatabaseMetaData: The oracle.jdbc.OracleDatabaseMetaData class along with oracle.jdbc.driver.OracleDatabaseMetaData implement the JDBC 3.0 DatabaseMetaData interface and in ojdbc6.jar and above, the JDBC4.0 DatabaseMetaData interface.
OracleDriver: The Oracle JDBC driver class that implements the `java.sql.Driver` interface.
OracleSQLPermission: The Permission class for Java security permissions unique to the Oracle JDBC drivers.
OracleTemporalField: TemporalFields specific to Oracle Database.
OracleTypes: Oracle types.

Enum Summary
LargeObjectAccessMode
NotificationRegistration.RegistrationState
OracleConnection.CommitOption
OracleConnection.ConnectionValidation: Specifiers for how much effort to put into validating a `Connection`.
OracleConnection.DatabaseShutdownMode
OracleConnection.DatabaseStartupMode
OracleConnection.DRCPState
OracleDatabaseMetaData.DataTypeSource
OracleResultSet.AuthorizationIndicator: eXtensible Data Security (XDS) authorization indicator.
OracleResultSetMetaData.SecurityAttribute: eXtensible Data Security (XDS) attribute.
OracleTranslatingConnection.SqlTranslationVersion: Enumeration of various Translation versions of a query.
OracleType: These are all the types documented in Oracle??? Database SQL Language Reference 12c Release 1.
OracleTypeMetaData.ArrayStorage: Identifies
OracleTypeMetaData.Kind: Identifies the kind of named type.

Exception Summary
OracleDatabaseException: Provides additional information about the Oracle error.

## Package oracle.jdbc Description

Beginning in Oracle9i, the Oracle extensions to JDBC are captured in the package `oracle.jdbc`. This package contains classes and interfaces that specify the Oracle extensions in a manner similar to the way the classes and interfaces in `java.sql` specify the public JDBC API.

Your code should use the package `oracle.jdbc` instead of the package `oracle.jdbc.driver` used in earlier versions of Oracle. Use of the package `oracle.jdbc.driver` is now deprecated, but will continue to be supported for backwards compatibility.

All that is required to covert your code is to replace "`oracle.jdbc.driver`" with "`oracle.jdbc`" in the source and recompile. This cannot be done piece-wise. You must convert all classes and interfaces that are referenced by an application. Conversion is not required, but is highly recommended. Future releases of Oracle may have features that are incompatible with use of the package `oracle.jdbc.driver`.

The purpose of this change is to enable the Oracle JDBC drivers to have multiple implementations. In all releases up to and including Oracle9i, all of the Oracle JDBC drivers have used the same top level implementation classes, the classes in the package `oracle.jdbc.driver`. By converting your code to use `oracle.jdbc`, you will be able to take advantage of future enhancements that use different implementation classes. There are no such enhancements in Oracle9i, but there are plans for such enhancements in the future.

Additionally, these interfaces permit the use of some code patterns that are difficult to use when your code uses the package `oracle.jdbc.driver`. For example, you can more easily develop wrapper classes for the Oracle JDBC classes. If you wished to wrap the `OracleStatement` class in order to log all SQL statements, you could easily do so by creating a class that wraps `OracleStatement`. That class would implement the interface `oracle.jdbc.OracleStatement` and hold an `oracle.jdbc.OracleStatement` as an instance variable. This wrapping pattern is much more difficult when your code uses the package `oracle.jdbc.driver` as you cannot extend the class `oracle.jdbc.driver.OracleStatement`.

Once again, your code should use the new package `oracle.jdbc` instead of the package `oracle.jdbc.driver`. Conversion is not required as `oracle.jdbc.driver` will continue to be supported for backwards compatibility. Conversion is highly recommended as there may in later releases be features that are not supported if your code uses `oracle.jdbc.driver`.

Since:
  9i
See Also:
  `java.sql`

Copyright © 2008, 2020, Oracle and/or its affiliates. All rights reserved.