oracle.jdbc
Interface OracleConnection

All Known Implementing Classes:
OracleConnectionWrapper

public abstract interface OracleConnection
extends java.sql.Connection

This interface defines the Oracle extensions to the standard JDBC interface java.sql.Connection. You can use java.sql.Connection in your application where you do not make use of the Oracle extensions. However, when your application uses the Oracle extensions to java.sql.Connection you must use oracle.jdbc.OracleConnection.

OracleConnection extends standard JDBC connection functionality to create and return Oracle statement objects, set flags and options for Oracle performance extensions, and support type maps for Oracle objects.

Basic example : Once you connect to the database and, in the process, create your Connection object (see OracleDriver), the next step is to create a Statement object. The createStatement method of your JDBC Connection object returns an object of the JDBC Statement type.
Here is an example of how to create the Statement object (conn being your connection object):

Statement stmt = conn.createStatement();

Note that there is nothing Oracle-specific about this statement; it follows standard JDBC syntax.

Since:
8.1.7

Field Summary
static int CACHE_SIZE_NOT_SET
           
static int DATABASE_CLOSED
           
static int DATABASE_NOTOK
           
static int DATABASE_OK
          Define return values for pingDatabase api
static int DATABASE_TIMEOUT
           
static java.lang.String dataSizeBytes
           
static java.lang.String dataSizeChars
           
static java.lang.String dataSizeUnitsPropertyName
           
 
Fields inherited from class java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
 
Method Summary
 java.sql.Connection _getPC()
          Return the underlying physical connection if this is a logical connection.
 void archive(int mode, int aseq, java.lang.String acstext)
          Deprecated. This method will be removed in a future version.
 void assertComplete()
          Deprecated. Ultra is not supported anymore. This method will be removed in a future version.
 boolean getAutoClose()
          The driver is always in auto-close mode.
 java.sql.CallableStatement getCallWithKey(java.lang.String key)
          getCallWithKey Searches the explicit cache for a match on key.
 boolean getCreateStatementAsRefCursor()
          Retrieves the current setting of the createStatementAsRefCursor flag which you can set with the setCreateStatementAsRefCursor method.
 int getDefaultExecuteBatch()
          Retrieves the overall connection batch value of this connection.
 int getDefaultRowPrefetch()
          Retrieves the value of row prefetch for all statements associated with this connection and created after this value was set.
 java.lang.Object getDescriptor(java.lang.String sql_name)
          Gets a Descriptor object corresponding to a sql type.
 boolean getExplicitCachingEnabled()
          getExplicitCachingEnabled Returns true if the explicit cache is currently enabled, false otherwise.
 boolean getImplicitCachingEnabled()
          getImplicitCachingEnabled Returns true if the implicit cache is currently enabled, false otherwise.
 boolean getIncludeSynonyms()
          Checks whether or not synonyms information is included in DatabaseMetaData.getColumns.
 java.lang.Object getJavaObject(java.lang.String sql_name)
          Deprecated.  
 java.util.Properties getProperties()
          Determines the connection properties.
 boolean getRemarksReporting()
          Checks whether or not a call of getTables or getColumns of the DatabaseMetaData interface will report the REMARKS column.
 boolean getRestrictGetTables()
          Gets the restriction status of the returned data in DatabaseMetaData.getTables.
 java.lang.String getSessionTimeZone()
          Obtain Oracle session time zone region name.
 java.lang.String getSQLType(java.lang.Object obj)
          Deprecated.  
 int getStatementCacheSize()
          getStatementCacheSize Returns the current size of the application cache.
 java.sql.PreparedStatement getStatementWithKey(java.lang.String key)
          getStatementWithKey Searches the explicit cache for a match on key.
 int getStmtCacheSize()
          Deprecated. Use getStatementCacheSize() instead.
 short getStructAttrCsId()
          Obtain the Oracle identifier of the character set used in STRUCT attributes.
 boolean getSynchronousMode()
          Deprecated. Ultra is not supported anymore. This method will be removed in a future version.
 java.lang.String getUserName()
          Gets the user name of the current connection.
 boolean getUsingXAFlag()
          Deprecated.  
 boolean getXAErrorFlag()
          Deprecated.  
 boolean isLogicalConnection()
          Method that returns a boolean indicating whether its a logical connection or not.
 java.lang.Object openJoltConnection(java.lang.String apiName, short major, short minor)
          Deprecated. Ultra is not supported anymore. This method will be removed in a future version.
 void oracleReleaseSavepoint(OracleSavepoint savepoint)
          Removes the given OracleSavepoint object from the current transaction.
 void oracleRollback(OracleSavepoint savepoint)
          Undoes all changes made after the given OracleSavepoint object was set.
 OracleSavepoint oracleSetSavepoint()
          Creates an unnamed savepoint in the current transaction and returns the new OracleSavepoint object that represents it.
 OracleSavepoint oracleSetSavepoint(java.lang.String name)
          Creates a savepoint with the given name in the current transaction and returns the new OracleSavepoint object that represents it.
 int pingDatabase(int timeOut)
          ping Database
 java.sql.CallableStatement prepareCallWithKey(java.lang.String key)
          Deprecated. This is same as prepareCall, except if a Callable Statement with the given KEY exists in the Cache, then the statement is returned AS IT IS when it was closed and cached with this KEY. An object returned from the Cache based on Key will have its state set to "KEYED". If no such Callable Statement is found, then null is returned. Key cannot be null.
 java.sql.PreparedStatement prepareStatementWithKey(java.lang.String key)
          Deprecated. This is same as prepareStatement, except if a Prepared Statement with the given KEY exists in the Cache, then the statement is returned AS IT IS when it was closed and cached with this KEY. An object returned from the Cache based on Key will have its state set to "KEYED". If no such Prepared Statement is found, a null is returned. Key cannot be null.
 void purgeExplicitCache()
          purgeExplicitCache Removes all existing statements from the explicit cache, after which it will be empty.
 void purgeImplicitCache()
          purgeImplicitCache Removes all existing statements from the implicit cache, after which it will be empty.
 void putDescriptor(java.lang.String sql_name, java.lang.Object desc)
          Store the Object Descriptor for later usage.
 void registerApiDescription(java.lang.String apiName, short major, short minor, java.lang.String className)
          Deprecated. Ultra is not supported anymore. This method will be removed in a future version.
 void registerSQLType(java.lang.String sql_name, java.lang.Class java_class)
          Deprecated.  
 void registerSQLType(java.lang.String sql_name, java.lang.String java_class_name)
          Deprecated.  
 void registerTAFCallback(OracleOCIFailover cbk, java.lang.Object obj)
          Register an application TAF Callback instance that will be called when an application failover occurs.
 void setAutoClose(boolean autoClose)
          We are always in auto-close mode.
 void setCreateStatementAsRefCursor(boolean value)
          When this is set to true, any new statements created from this connection will be created as a REF CURSOR.
 void setDefaultExecuteBatch(int batch)
          Sets a default batch value for the Oracle update batching model (the default value is 1).
 void setDefaultRowPrefetch(int value)
          Sets the value of row prefetch for all statements associated with this connection and created after this value was set. The row-prefetching feature associates an integer row-prefetch setting with a given statement object.
 void setExplicitCachingEnabled(boolean cache)
          setExplicitCachingEnabled Enables or disables the explicit cache.
 void setImplicitCachingEnabled(boolean cache)
          setImplicitCachingEnabled Enables or disables the implicit cache.
 void setIncludeSynonyms(boolean synonyms)
          Turns on or off retrieval of synonym information in DatabaseMetaData.
 void setRemarksReporting(boolean reportRemarks)
          Turns on or off the reporting of the REMARKS columns by the getTables and getColumns calls of the DatabaseMetaData interface. The DatabaseMetaData calls getTables and getColumns are extremely slow if the REMARKS column has to be reported as this necessitates an expensive outer join so by default the JDBC driver does not report the REMARKS columns. You can turn the reporting of REMARKS on by passing a true argument to this method.
 void setRestrictGetTables(boolean restrict)
          Turns on or off the restriction of the returned data in DatabaseMetaData.getTables. DatabaseMetaData.getTables will return information about all accessible tables, views, and synonyms.
 void setSessionTimeZone(java.lang.String regionName)
          Set the session time zone.
 void setStatementCacheSize(int size)
          setStatementCacheSize Specifies the size of the size of the application cache (which will be used by both implicit and explicit caching).
 void setStmtCacheSize(int size)
          Deprecated. Use setStatementCacheSize() instead.
 void setStmtCacheSize(int size, boolean clearMetaData)
          Deprecated. Use setStatementCacheSize() instead.
 void setSynchronousMode(boolean isSynchronous)
          Deprecated. Ultra is not supported anymore. This method will be removed in a future version.
 void setUsingXAFlag(boolean value)
          Deprecated.  
 void setWrapper(OracleConnection wrapper)
          Set the wrapping object
 void setXAErrorFlag(boolean value)
          Deprecated.  
 void shutdown(int mode)
          Deprecated. This method will be removed in a future version.
 void startup(java.lang.String startup_str, int mode)
          Deprecated. This method will be removed in a future version.
 OracleConnection unwrap()
          Return the wrapping object if any else null
 
Methods inherited from interface java.sql.Connection
clearWarnings, close, commit, createStatement, createStatement, getAutoCommit, getCatalog, getMetaData, getTransactionIsolation, getTypeMap, getWarnings, isClosed, isReadOnly, nativeSQL, prepareCall, prepareCall, prepareStatement, prepareStatement, rollback, setAutoCommit, setCatalog, setReadOnly, setTransactionIsolation, setTypeMap
 

Field Detail

DATABASE_OK

public static final int DATABASE_OK
Define return values for pingDatabase api

DATABASE_CLOSED

public static final int DATABASE_CLOSED

DATABASE_NOTOK

public static final int DATABASE_NOTOK

DATABASE_TIMEOUT

public static final int DATABASE_TIMEOUT

dataSizeUnitsPropertyName

public static final java.lang.String dataSizeUnitsPropertyName

dataSizeBytes

public static final java.lang.String dataSizeBytes

dataSizeChars

public static final java.lang.String dataSizeChars

CACHE_SIZE_NOT_SET

public static final int CACHE_SIZE_NOT_SET
Method Detail

archive

public void archive(int mode,
                    int aseq,
                    java.lang.String acstext)
             throws java.sql.SQLException
Deprecated. This method will be removed in a future version.
Not implemented.

getAutoClose

public boolean getAutoClose()
                     throws java.sql.SQLException
The driver is always in auto-close mode.
Returns:
should always return true
Throws:
java.sql.SQLException - should never been raised
See Also:
setAutoClose

getDefaultExecuteBatch

public int getDefaultExecuteBatch()
Retrieves the overall connection batch value of this connection.

The batch value from the connection is used for all prepared statements associated with this connection. A different batch value can also be defined for individual prepared statements. This can be done by using OraclePreparedStatement.setExecuteBatch, which will override the default value provided from the connection. Therefore, the batch value returned by this getDefaultExecuteBatch entrypoint is valid for prepared statements for which you have not defined a different batch value.

The following code retrieves the default batch value of the connection conn.
Integer batch_val = ((OracleConnection)conn).getDefaultExecuteBatch();

Returns:
the batch value
See Also:
OraclePreparedStatement.setExecuteBatch, setDefaultExecuteBatch

getDefaultRowPrefetch

public int getDefaultRowPrefetch()
Retrieves the value of row prefetch for all statements associated with this connection and created after this value was set.

The row-prefetching feature associates an integer row-prefetch setting with a given statement object. JDBC fetches that number of rows at a time from the database during the query. That is, JDBC will fetch N rows that match the query criteria and bring them all back to the client at once, where N is the prefetch setting. Then, once your next calls have run through those N rows, JDBC will go back to fetch the next N rows that match the criteria.

You can set the number of rows to prefetch for a particular Oracle statement (any type of statement). You can also reset the default number of rows that will be prefetched for all statements in your connection with the setDefaultRowPrefetch method. Therefore, the row prefetch value returned by this getDefaultRowPrefetch entrypoint is valid for statements for which you have not defined a different row prefetch value.

The default number of rows to prefetch to the client is 10.

Example where conn is your connection object:
//Get the default row-prefetch setting for this connection
int defRowPref = ((OracleConnection)conn).getDefaultRowPrefetch();

Returns:
the row prefetch value
See Also:
OracleStatement.setRowPrefetch, setDefaultRowPrefetch

getDescriptor

public java.lang.Object getDescriptor(java.lang.String sql_name)
Gets a Descriptor object corresponding to a sql type.
Parameters:
sql_name - the sql type
Returns:
the Descriptor Object that matches the sql type
See Also:
putDescriptor, oracle.sql.TypeDescriptor

getIncludeSynonyms

public boolean getIncludeSynonyms()
Checks whether or not synonyms information is included in DatabaseMetaData.getColumns. By default and for performance reasons it won't but you can change this with the setIncludeSynonyms method.
Returns:
true if DatabaseMetaData.getColumns will report information if a table synonym is passed in, and false otherwise
See Also:
setIncludeSynonyms

getRestrictGetTables

public boolean getRestrictGetTables()
Gets the restriction status of the returned data in DatabaseMetaData.getTables.

The default behavior is to return information about all synonyms, including those which do not point to accessible tables or views. But you can change this with the setRestrictGetTables method.

Returns:
true if the information returned by DatabaseMetaData.getTables is restricted, and false otherwise
See Also:
setRestrictGetTables

getJavaObject

public java.lang.Object getJavaObject(java.lang.String sql_name)
                               throws java.sql.SQLException
Deprecated.  

getRemarksReporting

public boolean getRemarksReporting()
Checks whether or not a call of getTables or getColumns of the DatabaseMetaData interface will report the REMARKS column.

By default and for performance reasons it won't (it will return null) but you can change this with the setRemarksReporting method.

Returns:
true if the DatabaseMetaData calls getTables and getColumns will report the REMARKS column and false otherwise
See Also:
setRemarksReporting

getSQLType

public java.lang.String getSQLType(java.lang.Object obj)
                            throws java.sql.SQLException
Deprecated.  

getStmtCacheSize

public int getStmtCacheSize()
Deprecated. Use getStatementCacheSize() instead.

getStructAttrCsId

public short getStructAttrCsId()
                        throws java.sql.SQLException
Obtain the Oracle identifier of the character set used in STRUCT attributes. Note that the network transport layer always send structure attributes in the database character set.
Returns:
the Oracle identifier of the character set.
Throws:
java.sql.SQLException - if Conversion is null
See Also:
oracle.sql.CharacterSet for the set of constants defined for the identifiers."

getUserName

public java.lang.String getUserName()
                             throws java.sql.SQLException
Gets the user name of the current connection.

Example where conn is your connection object:
String UserName = ((OracleConnection)conn).getUserName();

Returns:
the user name
Throws:
java.sql.SQLException - if the logical connection is closed

getUsingXAFlag

public boolean getUsingXAFlag()
Deprecated.  
Gets the value of the UsingXA flag which the driver sets to true when using XA to manage distributed transactions. If you are not using distributed transactions with the XA library, the value of the UsingXA flag will be false.
Returns:
true when using XA to manage distributed transactions and false otherwise.
See Also:
setUsingXAFlag

getXAErrorFlag

public boolean getXAErrorFlag()
Deprecated.  
Gets the value of the XAError flag which is used with distributed transactions.

When using distributed transactions with an XA library, you can ask the driver to raise exception when doing anything that might require a transaction. To do so, set the value of the XAError flag to true with the method setXAErrorFlag.

The default value is false.

Returns:
false is the normal JDBC usage. true means that the driver will raise an exception when doing anything that might require a transaction.
See Also:
setXAErrorFlag

pingDatabase

public int pingDatabase(int timeOut)
                 throws java.sql.SQLException
ping Database

putDescriptor

public void putDescriptor(java.lang.String sql_name,
                          java.lang.Object desc)
                   throws java.sql.SQLException
Store the Object Descriptor for later usage.
Parameters:
sql_name - the sql type
desc - the Object Descriptor associated
Throws:
java.sql.SQLException - if sql_name or desc is null
See Also:
getDescriptor, oracle.sql.TypeDescriptor

registerSQLType

public void registerSQLType(java.lang.String sql_name,
                            java.lang.Class java_class)
                     throws java.sql.SQLException
Deprecated.  

registerSQLType

public void registerSQLType(java.lang.String sql_name,
                            java.lang.String java_class_name)
                     throws java.sql.SQLException
Deprecated.  

setAutoClose

public void setAutoClose(boolean autoClose)
                  throws java.sql.SQLException
We are always in auto-close mode.
Parameters:
autoClose - the boolean value
Throws:
java.sql.SQLException - when the argument autoClose is false
See Also:
getAutoClose

setDefaultExecuteBatch

public void setDefaultExecuteBatch(int batch)
                            throws java.sql.SQLException
Sets a default batch value for the Oracle update batching model (the default value is 1).

You can reduce the number of round trips to the database, thereby improving application performance, by grouping multiple UPDATE, DELETE, or INSERT statements into a single "batch" and having the whole batch sent to the database and processed in one trip. To do this, you can either use the Oracle update batching model or the batch updates of the Sun Microsystems JDBC 2.0 specification. The standard model is a manual, explicit model (there is no batch value) whereas the Oracle model is an implicit model.

Note: It is important to be aware that you cannot mix theses models. In any single application, you can use the syntax of one model or the other, but not both. The Oracle JDBC driver will throw exceptions when you mix these syntaxes.

The Oracle update batching feature associates a batch value (limit) with each prepared statement object (this way the driver knows in advance how many operations will be batched). With Oracle update batching, instead of the JDBC driver executing a prepared statement each time its executeUpdate method is called, the driver adds the statement to a batch of accumulated execution requests. The driver will pass all the operations to the database for execution once the batch value is reached. For example, if the batch value is 10, then each batch of 10 operations will be sent to the database and processed in one trip.

The following code sets the default batch value to 20 for all prepared statement objects associated with the conn connection object:

((OracleConnection)conn).setDefaultExecuteBatch(20);

Even though this sets the default batch value for all the prepared statements of the connection, you can override it by calling setDefaultBatch on individual Oracle prepared statements. The connection batch value will apply to statement objects created after this batch value was set.

Note that instead of calling setDefaultExecuteBatch, you can set the defaultBatchValue Java property if you use a Java Properties object in establishing the connection.

Types of Statements Supported. As implemented by Oracle, update batching is intended for use with prepared statements, when you are repeating the same statement with different bind variables. Be aware of the following:

Oracle Update Batching Characteristics and Limitations

Parameters:
batch - your default batch value (default is 1)
Throws:
java.sql.SQLException - if the argument batch is <=0
See Also:
OraclePreparedStatement.setExecuteBatch, getDefaultExecuteBatch

setDefaultRowPrefetch

public void setDefaultRowPrefetch(int value)
                           throws java.sql.SQLException
Sets the value of row prefetch for all statements associated with this connection and created after this value was set.

The row-prefetching feature associates an integer row-prefetch setting with a given statement object. JDBC fetches that number of rows at a time from the database during the query. That is, JDBC will fetch N rows that match the query criteria and bring them all back to the client at once, where N is the prefetch setting. Then, once your next calls have run through those N rows, JDBC will go back to fetch the next N rows that match the criteria.

You can set the number of rows to prefetch for a particular Oracle statement (any type of statement) but this method allows you to reset the default number of rows that will be prefetched for all statements in your connection. The default number of rows to prefetch to the client is 10.

Use the setDefaultRowPrefetch method to set the default number of rows to prefetch, passing in an integer that specifies the desired default. If you want to check the current setting of the default, then use the getDefaultRowPrefetch method. This method returns an integer.

Example where conn is your connection object:
//Set the default row-prefetch setting for this connection to 7
((OracleConnection)conn).setDefaultRowPrefetch(7);

Note 1 : A statement object receives the default row-prefetch setting from the associated connection at the time the statement object is created. Subsequent changes to the connection's default row-prefetch setting have no effect on the statement's row-prefetch setting.

Note 2 : If a column of a result set is of datatype LONG or LONG RAW (that is, the streaming types), JDBC changes the statement's row-prefetch setting to 1, even if you never actually read a value of either of those types.

Note 3 : Do not mix the JDBC 2.0 fetch size API and the Oracle row-prefetching API in your application. You can use one or the other but not both.

Parameters:
value - the number of rows to prefetch
Throws:
java.sql.SQLException - if the argument value is <=0
See Also:
OracleStatement.setRowPrefetch, getDefaultRowPrefetch

setIncludeSynonyms

public void setIncludeSynonyms(boolean synonyms)
Turns on or off retrieval of synonym information in DatabaseMetaData. getColumns.

Similar to setRemarksReporting, getColumns performs extremely slow if information about synonyms has to be included, because it neccessitates an outer join so, by default, the JDBC driver will not report information about synonyms.

You can get synonym information by passing true to this method, and turn it off by passing false. You can also control this behavior by passing a property named "includeSynonyms" as "true" to DriverManager.getConnection.

Parameters:
synonyms - true if you want to retrieve synonym information in DatabaseMetaData.getColumns and false otherwise.
See Also:
getIncludeSynonyms

setRemarksReporting

public void setRemarksReporting(boolean reportRemarks)
Turns on or off the reporting of the REMARKS columns by the getTables and getColumns calls of the DatabaseMetaData interface.

The DatabaseMetaData calls getTables and getColumns are extremely slow if the REMARKS column has to be reported as this necessitates an expensive outer join so by default the JDBC driver does not report the REMARKS columns.

You can turn the reporting of REMARKS on by passing a true argument to this method. You turn it back off by passing a false argument.

Example where conn is your connection object:
((OracleConnection)conn).setRemarksReporting(true);

You can also control the reporting of REMARKS by passing a property named remarksReporting as true to the DriverManager.getConnection call.

Parameters:
reportRemarks - true if you want to turn on the reporting of the REMARKS columns and false otherwise.
See Also:
getRemarksReporting

setRestrictGetTables

public void setRestrictGetTables(boolean restrict)
Turns on or off the restriction of the returned data in DatabaseMetaData.getTables.

DatabaseMetaData.getTables will return information about all accessible tables, views, and synonyms. There are two issues relating to synonyms which can affect the quality of the returned data:

  1. Public synonyms can exist for tables to which you don't have access. Although the synonym itself is viewable, the underlying table is not.
  2. Synonyms can exist for non-table objects, such as procedures, sequences, Java classes, etc.
As a result of the above issues, getTables can return rows containing objects that are not describable with getColumns, either because they are not accessible (issue 1) or because they are not tables or views (issue 2).

To remedy this, you can restrict the results of getTables to only those tables and views to which you have access. This is done by either passing true to this method, or by passing the restrictGetTables property as true to the DriverManager.getConnection call. The default behavior is to return information about all synonyms, including those which do not point to accessible tables or views.

Note that getTables can return more than one row for the same object, one for the object itself, and additional rows for any synonyms defined for that object. This is the case regardless of the setting for restrictGetTables.

The following code turns on the restriction:
((OracleConnection)conn).setRestrictGetTables(true);

Parameters:
restrict - true to turn on the restriction and false otherwise.
See Also:
getRestrictGetTables

setStmtCacheSize

public void setStmtCacheSize(int size)
                      throws java.sql.SQLException
Deprecated. Use setStatementCacheSize() instead.

setStmtCacheSize

public void setStmtCacheSize(int size,
                             boolean clearMetaData)
                      throws java.sql.SQLException
Deprecated. Use setStatementCacheSize() instead.

setStatementCacheSize

public void setStatementCacheSize(int size)
                           throws java.sql.SQLException
setStatementCacheSize Specifies the size of the size of the application cache (which will be used by both implicit and explicit caching).
Parameters:
size - Requested size of the cache. If the existing cache size is less than size, statements will be purged to reduce the size.
Throws:
java.sql.SQLException - if size < 0, or if called on a logical connection.

getStatementCacheSize

public int getStatementCacheSize()
                          throws java.sql.SQLException
getStatementCacheSize Returns the current size of the application cache. This is valid on both physical and logical connections. If the statement cache has not been initialized with setStatementCacheSize(), then CACHE_SIZE_NOT_SET is returned.

setImplicitCachingEnabled

public void setImplicitCachingEnabled(boolean cache)
                               throws java.sql.SQLException
setImplicitCachingEnabled Enables or disables the implicit cache. Note that this is independent of the cache size, set with setStatmentCacheSize().
Parameters:
cache - If true, then implicit caching will be enabled. If false, then any existing statements will be purged and the implicit cache will be disabled.
Throws:
java.sql.SQLException - if called on a logical connection.

getImplicitCachingEnabled

public boolean getImplicitCachingEnabled()
                                  throws java.sql.SQLException
getImplicitCachingEnabled Returns true if the implicit cache is currently enabled, false otherwise. This method is valid on both logical and physical connections.

setExplicitCachingEnabled

public void setExplicitCachingEnabled(boolean cache)
                               throws java.sql.SQLException
setExplicitCachingEnabled Enables or disables the explicit cache. Note that this is independent of the cache size, set with setStatmentCacheSize().
Parameters:
cache - If true, then explicit caching will be enabled. If false, then any existing statements will be purged and the explicit cache will be disabled.
Throws:
java.sql.SQLException - if called on a logical connection.

getExplicitCachingEnabled

public boolean getExplicitCachingEnabled()
                                  throws java.sql.SQLException
getExplicitCachingEnabled Returns true if the explicit cache is currently enabled, false otherwise. This method is valid on both logical and physical connections.

purgeImplicitCache

public void purgeImplicitCache()
                        throws java.sql.SQLException
purgeImplicitCache Removes all existing statements from the implicit cache, after which it will be empty. This method does not affect the size of the application cache, nor the enabled/disabled status.

purgeExplicitCache

public void purgeExplicitCache()
                        throws java.sql.SQLException
purgeExplicitCache Removes all existing statements from the explicit cache, after which it will be empty. This method does not affect the size of the application cache, nor the enabled/disabled status.

getStatementWithKey

public java.sql.PreparedStatement getStatementWithKey(java.lang.String key)
                                               throws java.sql.SQLException
getStatementWithKey Searches the explicit cache for a match on key. If found, the statement is returned, with the paramater and define metadata identical to the last usage. If no match is found, or if explicit caching is not enabled, then null is returned (as opposed to throwing an exception).
Parameters:
key - Specified key to search for

getCallWithKey

public java.sql.CallableStatement getCallWithKey(java.lang.String key)
                                          throws java.sql.SQLException
getCallWithKey Searches the explicit cache for a match on key. If found, the statement is returned, with the paramater and define metadata identical to the last usage. If no match is found, or if explicit caching is not enabled, then null is returned (as opposed to throwing an exception).
Parameters:
key - Specified key to search for

setUsingXAFlag

public void setUsingXAFlag(boolean value)
Deprecated.  
When using distributed transactions with XA, you can set the value of the UsingXA flag.

XA is a general standard (not specific to Java) for distributed transactions. You should use this method only when using XA.

By default, when using distributed transactions with XA, the driver will set the UsingXA flag to true and exceptions will be raised when you want to do anything with your logical connection that might require a transaction. Otherwise the flag UsingXA is always false.

If you are actually using distributed transactions with XA and you dislike the default behavior, you can set the flag back to false.

Parameters:
value - the value of the UsingXA flag
See Also:
getUsingXAFlag

setXAErrorFlag

public void setXAErrorFlag(boolean value)
Deprecated.  
Sets the value of the XAError flag which is used with distributed transactions. When coexisting with an XA library, you can set the XAError flag to true and the driver will then raise an exception when doing anything that might require a transaction.
Parameters:
value - the value of the XAError flag
See Also:
getXAErrorFlag

shutdown

public void shutdown(int mode)
              throws java.sql.SQLException
Deprecated. This method will be removed in a future version.
Not implemented.

startup

public void startup(java.lang.String startup_str,
                    int mode)
             throws java.sql.SQLException
Deprecated. This method will be removed in a future version.
Not implemented

prepareStatementWithKey

public java.sql.PreparedStatement prepareStatementWithKey(java.lang.String key)
                                                   throws java.sql.SQLException
Deprecated. This is same as prepareStatement, except if a Prepared Statement with the given KEY exists in the Cache, then the statement is returned AS IT IS when it was closed and cached with this KEY. An object returned from the Cache based on Key will have its state set to "KEYED". If no such Prepared Statement is found, a null is returned. Key cannot be null.
Parameters:
key - the key with which it was closed
Returns:
a OraclePreparedStatement object
Throws:
java.sql.SQLException - if a database access error occurs

prepareCallWithKey

public java.sql.CallableStatement prepareCallWithKey(java.lang.String key)
                                              throws java.sql.SQLException
Deprecated. This is same as prepareCall, except if a Callable Statement with the given KEY exists in the Cache, then the statement is returned AS IT IS when it was closed and cached with this KEY. An object returned from the Cache based on Key will have its state set to "KEYED". If no such Callable Statement is found, then null is returned. Key cannot be null.
Parameters:
key - the key with which it was closed
Returns:
a oracle.jdbc.driver.CallableStatement object
Throws:
java.sql.SQLException - if a database access error occurs

setCreateStatementAsRefCursor

public void setCreateStatementAsRefCursor(boolean value)
When this is set to true, any new statements created from this connection will be created as a REF CURSOR. Only resultsets obtained from statements that are created as REF CURSORS can be returned from a Java Stored Procedure. This feature is supported by the server-side internal driver only, and is no-op in all other JDBC drivers.

Default value is false.

To use the setCreateStatementAsRefCursor entrypoint you have to cast the Connection object to the type oracle.jdbc.OracleConnection.

Parameters:
value - true if new statements should be created as REF CURSORS, false otherwise
See Also:
getCreateStatementAsRefCursor

getCreateStatementAsRefCursor

public boolean getCreateStatementAsRefCursor()
Retrieves the current setting of the createStatementAsRefCursor flag which you can set with the setCreateStatementAsRefCursor method.

To use the getCreateStatementAsRefCursor entrypoint you have to cast the Connection object to the type oracle.jdbc.OracleConnection.

Returns:
the current setting of the createStatementAsRefCursor flag
See Also:
setCreateStatementAsRefCursor

setSessionTimeZone

public void setSessionTimeZone(java.lang.String regionName)
                        throws java.sql.SQLException
Set the session time zone.

This method is used to set the session time zone. This method must be invoked before accessing any TIMESTAMP WITH LOCAL TIME ZONE data. Upon invocation of this method, the Jdbc driver sets the session timezone of the connection adnd saves the session timezone so that any TSLTZ data accessed via Jdbc are adjusted using the session timezone.

Parameters:
regionName - Oracle session time zone region name.
Throws:
java.sql.SQLException - if an error occurred.
Since:
9i

getSessionTimeZone

public java.lang.String getSessionTimeZone()
Obtain Oracle session time zone region name.
Returns:
Oracle session time zone region name.
Since:
9i

getProperties

public java.util.Properties getProperties()
Determines the connection properties.
See Also:
properties set during creation

assertComplete

public void assertComplete()
                    throws java.sql.SQLException
Deprecated. Ultra is not supported anymore. This method will be removed in a future version.
Wait until all Ultra method calls to this connection have completed, either by returning or throwing an exception. This method may throw an exception if one of the calls caused an error on the server. Is a no-op for the Thin, OCI, and Server Internal drivers.
Throws:
java.sql.SQLException -  

getSynchronousMode

public boolean getSynchronousMode()
Deprecated. Ultra is not supported anymore. This method will be removed in a future version.
Return the value of the synchronous mode switch for this connection. When using the Ultra driver may return true or false. If true, then this connection is operating in synchronous mode and exceptions will be thrown by the methods that casue them. If false, then running in asynchronous mode and exceptions may be thrown at some time after the method that caused them returns. See JDBC Users Guide for more details. Asynchronous mode is much faster. In the Thin, OCI, and Server Internal drivers, always returns true.
Returns:
boolean true if synchronous mode, false if asynchronous.

setSynchronousMode

public void setSynchronousMode(boolean isSynchronous)
Deprecated. Ultra is not supported anymore. This method will be removed in a future version.
Set the value of the synchronous mode switch for this connection. When using the Ultra driver may be either true or false. If true, then this connection will operate in synchronous mode and exceptions will be thrown by the methods that casue them. If false, then will run in asynchronous mode and exceptions may be thrown at some time after the method that caused them returns. See JDBC Users Guide for more details. Asynchronous mode is much faster. In the Thin, OCI, and Server Internal drivers, value is ignored.
Parameters:
isSynchronous - true if should run synchronously, false if asynchronously.

registerApiDescription

public void registerApiDescription(java.lang.String apiName,
                                   short major,
                                   short minor,
                                   java.lang.String className)
Deprecated. Ultra is not supported anymore. This method will be removed in a future version.
When used in the Ultra driver, registers an ApiDescription for use in a Jolt connection. See Jolt Appendix of JDBC Users Guide for more details. A single ApiDescription class can be registered for multiple versions and generic api names. The last ApiDescription class registered for a given api name and version replaces any others. Ignored by the Thin, OCI, and Server Internal drivers.
Parameters:
apiName - a String that names the generic api that this ApiDescription supports
major - a short that specifies the major version number that this ApiDescription supports
minor - a short that specifies the minor version number that this ApiDescription supports
className - a String that is the fully qualified class name of the ApiDescription class

openJoltConnection

public java.lang.Object openJoltConnection(java.lang.String apiName,
                                           short major,
                                           short minor)
Deprecated. Ultra is not supported anymore. This method will be removed in a future version.
When used with the Ultra driver, opens a Jolt connection with the given generic api name and the highest version supported by both parties that is less than or equal to the version provided. If there is no common version or the other party does not support that api name, then returns null. You must cast the result to an ApiDescription. See Jolt Appendix of JDBC Users Guide for more details. When used with the Thin, OCI, or Server Internal drivers, always returns null.
Parameters:
apiName - a String that names the generic api to be used
major - the major version number of the highest version to be used
minor - the minor version number of the highest version to be used
Returns:
an ApiDescription that was regisetered with apiName and has the highest version number that is also supported by the server and is less than major.minor or null if none.

_getPC

public java.sql.Connection _getPC()
Return the underlying physical connection if this is a logical connection. Returns null otherwise.
Returns:
Connection object if its a logical handle otherwise returns null

isLogicalConnection

public boolean isLogicalConnection()
Method that returns a boolean indicating whether its a logical connection or not.
Returns:
boolean true if this is a logical connection

registerTAFCallback

public void registerTAFCallback(OracleOCIFailover cbk,
                                java.lang.Object obj)
                         throws java.sql.SQLException
Register an application TAF Callback instance that will be called when an application failover occurs. The TAF feature is only available in the Jdbc OCI driver.
Parameters:
cbk - Callback instance.
obj - Context object in which any client's state can be stored and provided when the callback method is invoked.
Throws:
java.sql.SQLException - if this method is invoked in drivers other than the Jdbc OCI driver.
Since:
9i

unwrap

public OracleConnection unwrap()
Return the wrapping object if any else null
Returns:
wrapping object which implements oracle.jdbc.OracleConnection if any else return null
Since:
9iRw

setWrapper

public void setWrapper(OracleConnection wrapper)
Set the wrapping object
Parameters:
wrapper - An object which implements oracle.jdbc.OracleConnection and which can act as a wrapper for this object # @since 9iR2

oracleSetSavepoint

public OracleSavepoint oracleSetSavepoint()
                                   throws java.sql.SQLException
Creates an unnamed savepoint in the current transaction and returns the new OracleSavepoint object that represents it.
Returns:
the new OracleSavepoint object
Throws:
java.sql.SQLException - if a database access error occurs or this Connection object is currently in auto-commit mode
Since:
9.0.2
See Also:
OracleSavepoint

oracleSetSavepoint

public OracleSavepoint oracleSetSavepoint(java.lang.String name)
                                   throws java.sql.SQLException
Creates a savepoint with the given name in the current transaction and returns the new OracleSavepoint object that represents it.
Parameters:
name - a String containing the name of the savepoint
Returns:
the new OracleSavepoint object
Throws:
java.sql.SQLException - if a database access error occurs or this Connection object is currently in auto-commit mode
Since:
9.0.2
See Also:
OracleSavepoint

oracleRollback

public void oracleRollback(OracleSavepoint savepoint)
                    throws java.sql.SQLException
Undoes all changes made after the given OracleSavepoint object was set.

This method should be used only when auto-commit has been disabled.

Parameters:
savepoint - the OracleSavepoint object to roll back to
Throws:
java.sql.SQLException - if a database access error occurs, the OracleSavepoint object is no longer valid, or this Connection object is currently in auto-commit mode
Since:
9.0.2
See Also:
OracleSavepoint

oracleReleaseSavepoint

public void oracleReleaseSavepoint(OracleSavepoint savepoint)
                            throws java.sql.SQLException
Removes the given OracleSavepoint object from the current transaction. Any reference to the savepoint after it have been removed will cause an SQLException to be thrown.
Parameters:
savepoint - the OracleSavepoint object to be removed
Throws:
java.sql.SQLException - if a database access error occurs or the given OracleSavepoint object is not a valid savepoint in the current transaction
Since:
9.0.2
See Also:
OracleSavepoint