oracle.jdbc.driver
Class OracleConnection

java.lang.Object
  |
  +--oracle.jdbc.driver.OracleConnection

public class OracleConnection
extends java.lang.Object
implements oracle.jdbc.internal.OracleConnection, ClientDataSupport

The OracleConnection class implements the JDBC 1.0 Connection interface.

The implementation relies on native methods. The native methods do all the work and return error codes, a return value >= 0 means the call was successful. The Java methods call the native methods, check the error codes and raise exceptions if errors occured. If the native method get_error_message returns a string that can be used to explain the error to the user.


Field Summary
static int ASCII_TO_CHAR
           
static int CHAR_TO_ASCII
           
static int CHAR_TO_JAVACHAR
           
static int CHAR_TO_UNICODE
           
 oracle.jdbc.dbaccess.DBConversion conversion
           
 oracle.jdbc.dbaccess.DBAccess db_access
           
static boolean DEBUG
           
static int JAVACHAR_TO_CHAR
           
 oracle.sql.LobDBAccessImpl lob_dbaccess
           
static int NONE
           
static int RAW_TO_ASCII
           
static int RAW_TO_JAVACHAR
           
static int RAW_TO_UNICODE
           
static int UNICODE_TO_CHAR
           
 boolean UsingXA
           
 boolean XA_wants_error
           
 
Constructor Summary
OracleConnection(oracle.jdbc.dbaccess.DBAccess access, java.lang.String ur, java.lang.String us, java.lang.String p, java.lang.String db, java.util.Properties info)
          Allocate a new OracleConnection.
 
Method Summary
 void archive(int mode, int aseq, java.lang.String acstext)
           
 void clearWarnings()
           
 void close()
          Rollbacks the current transaction.
 void commit()
           
 oracle.sql.BfileDBAccess createBfileDBAccess()
           
 oracle.sql.BlobDBAccess createBlobDBAccess()
           
 oracle.sql.ClobDBAccess createClobDBAccess()
           
 java.sql.Statement createStatement()
          createStatement just allocates a new statement object.
 java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency)
          JDBC 2.0 Creates a Statement object that will generate ResultSet objects with the given type and concurrency.
 java.sql.Statement createStatementWithKey(java.lang.String key)
          This is same as createStatement, except if a 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.
 boolean getAutoClose()
          We are always in auto-close mode.
 boolean getAutoCommit()
           
 java.lang.String getCatalog()
          We do not support catalogs.
 java.lang.Object getClientData(java.lang.Object key)
          Obtain the client data value associated with a key.
 java.lang.String getDatabaseProductVersion()
          What's the version of this database product?
 short getDbCsId()
          Obtain the Oracle identifier of the character set used in the database server.
 boolean getDefaultAutoRefetch()
          Oracle extension.
 int getDefaultExecuteBatch()
          Allows the user to retrieve the batch value for the connection.
 int getDefaultRowPrefetch()
          Allows the user to retrieve the row prefetch value for the connection.
 java.lang.Object getDescriptor(java.lang.String sql_name)
          Return the matched StructDescriptor.
 boolean getIncludeSynonyms()
          Returns true if DatabaseMetaData.getColumns will report information if a table synonym is passed in, and false otherwise.
 java.lang.Object getJavaObject(java.lang.String sql_name)
           
 short getJdbcCsId()
          Obtain the Oracle identifier of the character set used in the JDBC driver.
 java.sql.DatabaseMetaData getMetaData()
          We just return a oracle.oci8.DatabaseMetaData object.
 boolean getRemarksReporting()
          Return true if the DatabaseMetaData calls getTables and getColumns will report the REMARKS column.
 boolean getReportRemarks()
           
 boolean getRestrictGetTables()
          Returns true if the information returned by DatabaseMetaData.getTables is restricted, and false otherwise.
 java.lang.String getSQLType(java.lang.Object obj)
           
 int getStmtCacheSize()
          Return the size of Statement Cache.
 short getStructAttrCsId()
          Obtain the Oracle identifier of the character set used in STRUCT attributes.
 int getTransactionIsolation()
          We only support dirty reads.
 java.util.Dictionary getTypeMap()
           
 java.lang.String getUserName()
           
 boolean getUsingXAFlag()
           
 short getVersionNumber()
           
 java.sql.SQLWarning getWarnings()
          Return the current warning, if any
 boolean getXAErrorFlag()
           
 void holdLine(OracleStatement stmt)
           
 void initUserName()
           
 boolean isClosed()
          As we do not keep a state in the Java struct we call native method even for isClosed.
 boolean isReadOnly()
          Our connections are never in read-only mode.
 java.lang.String nativeSQL(java.lang.String sql)
          This is a bogus and quickly done implementation waiting for something better
 void needLine()
           
 java.sql.CallableStatement prepareCall(java.lang.String sql)
          This is similar to createStatement.
 java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency)
          JDBC 2.0 Creates a CallableStatement object that will generate ResultSet objects with the given type and concurrency.
 java.sql.CallableStatement prepareCallWithKey(java.lang.String key)
          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.
 java.sql.PreparedStatement prepareStatement(java.lang.String sql)
          This is similar to createStatement.
 java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency)
          JDBC 2.0 Creates a PreparedStatement object that will generate ResultSet objects with the given type and concurrency.
 java.sql.PreparedStatement prepareStatementWithKey(java.lang.String key)
          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.
 void putDescriptor(java.lang.String sql_name, java.lang.Object desc)
          Store the Object Descriptor for later usage.
 void registerSQLType(java.lang.String sql_name, java.lang.Class java_class)
           
 void registerSQLType(java.lang.String sql_name, java.lang.String java_class_name)
          Map accessor methods
 void releaseLine()
           
 java.lang.Object removeClientData(java.lang.Object key)
          Remove the specified key and any associated client data.
 void rollback()
           
 void setAutoClose(boolean autoClose)
          We are always in auto-close mode.
 void setAutoCommit(boolean autoCommit)
           
 void setCatalog(java.lang.String catalog)
          We do not support catalogs.
 java.lang.Object setClientData(java.lang.Object key, java.lang.Object value)
          Store a piece client data and associate it with the specified key.
 void setDefaultAutoRefetch(boolean autoRefetch)
          Oracle extension.
 void setDefaultExecuteBatch(int batch)
          Set the batch value for executes for all prepared statements belonging to this connection and created after the batch value was set.
 void setDefaultRowPrefetch(int value)
          Set the value of row prefetch for all statements associated with this connection and created after this value was set.
 void setIncludeSynonyms(boolean synonyms)
          Turn on or off retrieval of synonym information in DatabaseMetaData.
 void setReadOnly(boolean readOnly)
          We do not support read-only connections
 void setRemarksReporting(boolean reportRemarks)
          Turn 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)
          Turn on or off the restriction of the returned data in DatabaseMetaData.
 void setStmtCacheSize(int size)
          Set the statement cache size.
 void setStmtCacheSize(int size, boolean clearMetaData)
          Set the statement cache size.
 void setTransactionIsolation(int level)
          We only support dirty reads.
 void setTypeMap(java.util.Dictionary map)
           
 void setUsingXAFlag(boolean value)
           
 void setXAErrorFlag(boolean value)
           
 void shutdown(int mode)
           
 void startup(java.lang.String startup_str, int mode)
           
 void trace(java.lang.String s)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

public static final boolean DEBUG

db_access

public oracle.jdbc.dbaccess.DBAccess db_access

conversion

public oracle.jdbc.dbaccess.DBConversion conversion

lob_dbaccess

public oracle.sql.LobDBAccessImpl lob_dbaccess

XA_wants_error

public boolean XA_wants_error

UsingXA

public boolean UsingXA

CHAR_TO_ASCII

public static final int CHAR_TO_ASCII

CHAR_TO_UNICODE

public static final int CHAR_TO_UNICODE

RAW_TO_ASCII

public static final int RAW_TO_ASCII

RAW_TO_UNICODE

public static final int RAW_TO_UNICODE

UNICODE_TO_CHAR

public static final int UNICODE_TO_CHAR

ASCII_TO_CHAR

public static final int ASCII_TO_CHAR

NONE

public static final int NONE

JAVACHAR_TO_CHAR

public static final int JAVACHAR_TO_CHAR

RAW_TO_JAVACHAR

public static final int RAW_TO_JAVACHAR

CHAR_TO_JAVACHAR

public static final int CHAR_TO_JAVACHAR
Constructor Detail

OracleConnection

public OracleConnection(oracle.jdbc.dbaccess.DBAccess access,
                        java.lang.String ur,
                        java.lang.String us,
                        java.lang.String p,
                        java.lang.String db,
                        java.util.Properties info)
                 throws java.sql.SQLException
Allocate a new OracleConnection. We get the connection parameters as arguments.

We allocate the c_state and call the native method "connect" that does the work. If connect fails we raise an exception.

See Also:
#connect
Method Detail

createStatement

public java.sql.Statement createStatement()
                                   throws java.sql.SQLException
createStatement just allocates a new statement object. The statement has a pointer to the connection object.

Returns:
a new OracleStatement object
Throws:
java.sql.SQLException - if a database access error occurs

createStatement

public java.sql.Statement createStatement(int resultSetType,
                                          int resultSetConcurrency)
                                   throws java.sql.SQLException
JDBC 2.0 Creates a Statement object that will generate ResultSet objects with the given type and concurrency. This method is the same as the createStatement method above, but it allows the default result set type and result set concurrency type to be overridden.
Parameters:
resultSetType - a result set type; see ResultSet.TYPE_XXX
Returns:
a new Statement object
Throws:
java.sql.SQLException - if a database access error occurs

createStatementWithKey

public java.sql.Statement createStatementWithKey(java.lang.String key)
                                          throws java.sql.SQLException
This is same as createStatement, except if a 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 "EXPLICIT". If no such Statement is found in the Cache, a null is returned. Key cannot be null.

Parameters:
key - the key with which it was closed
Returns:
a Statement object or null if no entries are found in the Cache with the given Key.
Throws:
java.sql.SQLException - if a database access error occurs

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql)
                                            throws java.sql.SQLException
This is similar to createStatement. We accept both ODBC syntax and Oracle syntax for SQL statements.
Parameters:
sql - The query for which the cursor has to be created
Returns:
a new OraclePreparedStatement object
Throws:
java.sql.SQLException - if a database access error occurs

prepareStatementWithKey

public java.sql.PreparedStatement prepareStatementWithKey(java.lang.String key)
                                                   throws java.sql.SQLException
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 "EXPLICIT". 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

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql,
                                                   int resultSetType,
                                                   int resultSetConcurrency)
                                            throws java.sql.SQLException
JDBC 2.0 Creates a PreparedStatement object that will generate ResultSet objects with the given type and concurrency. This method is the same as the prepareStatement method above, but it allows the default result set type and result set concurrency type to be overridden.
Parameters:
sql - The query for which the cursor has to be created
resultSetType - a result set type; see ResultSet.TYPE_XXX
resultSetConcurrency - a concurrency type; see ResultSet.CONCUR_XXX
Returns:
a new PreparedStatement object containing the pre-compiled SQL statement
Throws:
java.sql.SQLException - if a database access error occurs

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql)
                                       throws java.sql.SQLException
This is similar to createStatement. We accept both ODBC syntax and Oracle syntax for SQL statements.
Parameters:
sql - The query for which the cursor has to be created
Returns:
a new oracle.jdbc.driver.CallableStatement object
Throws:
java.sql.SQLException - if a database access error occurs

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql,
                                              int resultSetType,
                                              int resultSetConcurrency)
                                       throws java.sql.SQLException
JDBC 2.0 Creates a CallableStatement object that will generate ResultSet objects with the given type and concurrency. This method is the same as the prepareCall method above, but it allows the default result set type and result set concurrency type to be overridden.
Parameters:
sql - The query for which the cursor has to be created
resultSetType - a result set type; see ResultSet.TYPE_XXX
resultSetConcurrency - a concurrency type; see ResultSet.CONCUR_XXX
Returns:
a new CallableStatement object containing the
Throws:
java.sql.SQLException - if a database access error occurs

prepareCallWithKey

public java.sql.CallableStatement prepareCallWithKey(java.lang.String key)
                                              throws java.sql.SQLException
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 "EXPLICIT". 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

nativeSQL

public java.lang.String nativeSQL(java.lang.String sql)
                           throws java.sql.SQLException
This is a bogus and quickly done implementation waiting for something better

setAutoCommit

public void setAutoCommit(boolean autoCommit)
                   throws java.sql.SQLException

getAutoCommit

public boolean getAutoCommit()
                      throws java.sql.SQLException

commit

public void commit()
            throws java.sql.SQLException

rollback

public void rollback()
              throws java.sql.SQLException

close

public void close()
           throws java.sql.SQLException
Rollbacks the current transaction. See commit for discussion of how the PreparedStatements, CallableStatement and ResultSets are closed.
See Also:
rollback(), commit()

isClosed

public boolean isClosed()
                 throws java.sql.SQLException
As we do not keep a state in the Java struct we call native method even for isClosed. (The alternative is to test if c_state is 0, but this breaks the information hiding strategy.)

getMetaData

public java.sql.DatabaseMetaData getMetaData()
                                      throws java.sql.SQLException
We just return a oracle.oci8.DatabaseMetaData object. It has a pointer to the connection.

setReadOnly

public void setReadOnly(boolean readOnly)
                 throws java.sql.SQLException
We do not support read-only connections

isReadOnly

public boolean isReadOnly()
                   throws java.sql.SQLException
Our connections are never in read-only mode.

setCatalog

public void setCatalog(java.lang.String catalog)
                throws java.sql.SQLException
We do not support catalogs.

getCatalog

public java.lang.String getCatalog()
                            throws java.sql.SQLException
We do not support catalogs.

setTransactionIsolation

public void setTransactionIsolation(int level)
                             throws java.sql.SQLException
We only support dirty reads.

getTransactionIsolation

public int getTransactionIsolation()
                            throws java.sql.SQLException
We only support dirty reads.

setAutoClose

public void setAutoClose(boolean autoClose)
                  throws java.sql.SQLException
We are always in auto-close mode.

getAutoClose

public boolean getAutoClose()
                     throws java.sql.SQLException
We are always in auto-close mode.

getWarnings

public java.sql.SQLWarning getWarnings()
                                throws java.sql.SQLException
Return the current warning, if any

clearWarnings

public void clearWarnings()
                   throws java.sql.SQLException

trace

public void trace(java.lang.String s)
Specified by:
trace in interface oracle.jdbc.internal.OracleConnection

setDefaultRowPrefetch

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

If this value is not set by the user, only 1 row will be fetched at a time.

All statements created before this API was called will have a row prefetch of 1.

Row prefetching allows the JDBC driver to "fetch" multiple rows in one round-trip to the database. If this value is not set by the user, only 1 row will be fetched at a time.

To use the setDefaultRowPrefetch entrypoint you have to cast the Statement object to the type oracle.jdbc.driver.OracleConnection.

The user can override the row prefetch value set by this oracle.jdbc.driver.OracleConnection entrypoint for individual statements, by calling OracleStatement.setRowPrefetch for those statements.

The row_prefetch will be turned back to 1 automatically by the driver if any of the select-column types is streaming (long data or long raw data). This is overrides any value the user might set. Also, this will be done regardless of wether the streaming columns are read or not.

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

See Also:
OracleStatement.setRowPrefetch, getDefaultRowPrefetch

getDefaultRowPrefetch

public int getDefaultRowPrefetch()
Allows the user to retrieve the row prefetch value for the connection.

The row prefetch from the connection is used for all statements associated with this connection. However, the user can also define a different row prefetch value for each statement. This can be done using Oraclestatement.setRowPrefetch, which will override the default value provided from the connection. Therefore, the row prefetch value returned by this getDefaultRowPrefetch entrypoint is valid for statements for which the user has not defined a different row prefetch.

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

See Also:
OracleStatement.setRowPrefetch, setDefaultRowPrefetch

setDefaultExecuteBatch

public void setDefaultExecuteBatch(int batch)
                            throws java.sql.SQLException
Set the batch value for executes for all prepared statements belonging to this connection and created after the batch value was set.

All statements created before using this API to set the batch value will have a batch value of 1.

Batching allows the JDBC driver to avoid making one round-trip to the RDBMS to execute a prepared statement every time bind variables change. The driver "batches" multiple executions of the statement with different bind variables. Actual execution normally happens when the number of executions reaches the pre-defined "batch" value. The set of bind variables along with the number of times the statement needs to be executed (equal to "batch"), are sent to the RDBMS in one round-trip.

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

The user can override the batch value set by this setDefaultExecuteBatch entrypoint for individual prepared statements, by calling OraclePreparedStatement.setExecuteBatch for those statements.

The default value of batch will be overridden by the driver for a particular statement if that statement has any streaming bind values.

See Also:
OracleStatement.setRowPrefetch, getDefaultRowPrefetch

getDefaultExecuteBatch

public int getDefaultExecuteBatch()
Allows the user to retrieve the batch value for the connection.

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

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

See Also:
OracleStatement.setRowPrefetch, setDefaultRowPrefetch

setRemarksReporting

public void setRemarksReporting(boolean reportRemarks)
Turn 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.

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


getRemarksReporting

public boolean getRemarksReporting()
Return true if the DatabaseMetaData calls getTables and getColumns will report the REMARKS column.

Specified by:
getRemarksReporting in interface oracle.jdbc.internal.OracleConnection

setIncludeSynonyms

public void setIncludeSynonyms(boolean synonyms)
Turn 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. By default, the JDBC driver will not report information about table columns when you pass a synonym to getColumns.

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.


getIncludeSynonyms

public boolean getIncludeSynonyms()
Returns true if DatabaseMetaData.getColumns will report information if a table synonym is passed in, and false otherwise.

Specified by:
getIncludeSynonyms in interface oracle.jdbc.internal.OracleConnection

setRestrictGetTables

public void setRestrictGetTables(boolean restrict)
Turn 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.


getRestrictGetTables

public boolean getRestrictGetTables()
Returns true if the information returned by DatabaseMetaData.getTables is restricted, and false otherwise.

Specified by:
getRestrictGetTables in interface oracle.jdbc.internal.OracleConnection

needLine

public void needLine()
              throws java.sql.SQLException

holdLine

public void holdLine(OracleStatement stmt)

releaseLine

public void releaseLine()

startup

public void startup(java.lang.String startup_str,
                    int mode)
             throws java.sql.SQLException

shutdown

public void shutdown(int mode)
              throws java.sql.SQLException

archive

public void archive(int mode,
                    int aseq,
                    java.lang.String acstext)
             throws java.sql.SQLException

registerSQLType

public void registerSQLType(java.lang.String sql_name,
                            java.lang.String java_class_name)
                     throws java.sql.SQLException
Map accessor methods

registerSQLType

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

getSQLType

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

getJavaObject

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

putDescriptor

public void putDescriptor(java.lang.String sql_name,
                          java.lang.Object desc)
                   throws java.sql.SQLException
Store the Object Descriptor for later usage.

getDescriptor

public java.lang.Object getDescriptor(java.lang.String sql_name)
Return the matched StructDescriptor.

getJdbcCsId

public short getJdbcCsId()
                  throws java.sql.SQLException
Obtain the Oracle identifier of the character set used in the JDBC driver.
Returns:
the Oracle identifier of the character set. See oracle.sql.CharacterSet for the set of constants defined for the identifiers.

getDbCsId

public short getDbCsId()
                throws java.sql.SQLException
Obtain the Oracle identifier of the character set used in the database server.
Returns:
the Oracle identifier of the character set. See oracle.sql.CharacterSet for the set of constants defined for the identifiers.

getStructAttrCsId

public short getStructAttrCsId()
                        throws java.sql.SQLException
Obtain the Oracle identifier of the character set used in STRUCT attributes. Note that TTC always send structure attributes in the database character set.
Returns:
the Oracle identifier of the character set. See oracle.sql.CharacterSet for the set of constants defined for the identifiers.

getTypeMap

public java.util.Dictionary getTypeMap()
Specified by:
getTypeMap in interface oracle.jdbc.internal.OracleConnection

setTypeMap

public void setTypeMap(java.util.Dictionary map)

setUsingXAFlag

public void setUsingXAFlag(boolean value)

getUsingXAFlag

public boolean getUsingXAFlag()

setXAErrorFlag

public void setXAErrorFlag(boolean value)

getXAErrorFlag

public boolean getXAErrorFlag()

initUserName

public void initUserName()
                  throws java.sql.SQLException

getUserName

public java.lang.String getUserName()
                             throws java.sql.SQLException

getClientData

public java.lang.Object getClientData(java.lang.Object key)
Obtain the client data value associated with a key.
Specified by:
getClientData in interface ClientDataSupport
Parameters:
key - key whose associated value is to be returned.
Returns:
value associated with the specified key, or null if there is no value for this key.
Throws:
NullPointerException - if the specified key is null.

setClientData

public java.lang.Object setClientData(java.lang.Object key,
                                      java.lang.Object value)
Store a piece client data and associate it with the specified key. Neither the key nor the value can be null. If the specified key already existed, the old value is replaced.
Specified by:
setClientData in interface ClientDataSupport
Parameters:
key - key with which the specified client data value is to be associated.
value - client data value to be associated with the specified key.
Returns:
previous client data value associated with specified key, or null if there was no previous association.
Throws:
NullPointerException - if the specified key or value is null.

removeClientData

public java.lang.Object removeClientData(java.lang.Object key)
Remove the specified key and any associated client data.
Specified by:
removeClientData in interface ClientDataSupport
Parameters:
key - key to be removed along with its associated value
Returns:
client data value being removed, or null if there was no data found.
Throws:
NullPointerException - if the specified key is null.

createBlobDBAccess

public oracle.sql.BlobDBAccess createBlobDBAccess()
                                           throws java.sql.SQLException

createClobDBAccess

public oracle.sql.ClobDBAccess createClobDBAccess()
                                           throws java.sql.SQLException

createBfileDBAccess

public oracle.sql.BfileDBAccess createBfileDBAccess()
                                             throws java.sql.SQLException

setStmtCacheSize

public void setStmtCacheSize(int size)
                      throws java.sql.SQLException
Set the statement cache size. Default is 0. You cannot set this for logicalhandles obtained from PooledConnections.

If more than size cursors are already cached than they will be closed. By default the meta data of the cursor will be saved. Only data and the state will be cleared. You need to call this first to enable either type of Statement caching. When both types of Statement caching are enabled, the size is the total number of cursors cached for both the schemes together.

Parameters:
size - Size of the Cache
Throws:
java.sql.SQLException -  

setStmtCacheSize

public void setStmtCacheSize(int size,
                             boolean clearMetaData)
                      throws java.sql.SQLException
Set the statement cache size. Default is 0. You cannot set this for logicalhandles obtained from PooledConnections.

If more than size cursors are already cached than they will be closed. By default, the meta data of the cursor will be saved. But if clearMetaData is set to true, even that will be cleared. You need to call this first to enable either type of Statement caching. When both types of Statement caching are enabled, the size is the total number of cursors cached for both the schemes together.

Parameters:
size - Size of the Cache
clearMetaData - Whether the state has to be cleared or not
Throws:
java.sql.SQLException -  

getStmtCacheSize

public int getStmtCacheSize()
Return the size of Statement Cache.
Returns:
int Size of Statement Cache. If not set, the default 0 is returned.

setDefaultAutoRefetch

public void setDefaultAutoRefetch(boolean autoRefetch)
                           throws java.sql.SQLException
Oracle extension. Set the default state of ResultSet's auto-refetch mode of the connection. If a ResultSet is in auto-refetch mode, then it automatically refetches the column values during updateRow(). Otherwise, the column values in the ResultSet are the same as the value from the updateXXX() calls which may not be in sync with the database column values if a database trigger is enabled to modify the column values. Disable auto-refetch improves performance by avoiding one database round-trip druing the updateRow() call. By default, the connection's default auto-refetech value is true.
Parameters:
autoRefetch - true enables auto-refetch; false disables auto-refetch.
Throws:
java.sql.SQLException - if a database access error occurs
Since:
8.1.7
See Also:
OracleStatement.setAutoRefetch(boolean), OracleResultSet.setAutoRefetch(boolean)

getDefaultAutoRefetch

public boolean getDefaultAutoRefetch()
                              throws java.sql.SQLException
Oracle extension. Gets the default auto-refetch state of this connection.
Returns:
the current state of auot-refetch mode
Throws:
java.sql.SQLException - if a database access error occurs
Since:
8.1.7
See Also:
setDefaultAutoRefetch(boolean)

getDatabaseProductVersion

public java.lang.String getDatabaseProductVersion()
                                           throws java.sql.SQLException
What's the version of this database product?
Specified by:
getDatabaseProductVersion in interface oracle.jdbc.internal.OracleConnection
Returns:
database version

getReportRemarks

public boolean getReportRemarks()

getVersionNumber

public short getVersionNumber()
                       throws java.sql.SQLException
Specified by:
getVersionNumber in interface oracle.jdbc.internal.OracleConnection