|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
The OracleConnection class extends 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 |
DATABASE_CLOSED
|
static int |
DATABASE_NOTOK
|
static int |
DATABASE_OK
Define return values for pingDatabase api |
static int |
DATABASE_TIMEOUT
|
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)
|
void |
assertComplete()
Wait until all Ultra method calls to this connection have completed, either by returning or throwing an exception. |
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 |
getCreateStatementAsRefCursor()
Retrieve the current setting of the createStatementAsRefCursor flag. |
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)
Deprecated. |
boolean |
getRemarksReporting()
Return true if the DatabaseMetaData calls getTables and getColumns will report the REMARKS column. |
boolean |
getRestrictGetTables()
Returns true if the information returned by DatabaseMetaData.getTables is restricted, and false otherwise. |
java.lang.String |
getSessionTimeZone()
Obtain Oracle session time zone region name. |
java.lang.String |
getSQLType(java.lang.Object obj)
Deprecated. |
int |
getStmtCacheSize()
Insert the method's description here. |
short |
getStructAttrCsId()
Obtain the Oracle identifier of the character set used in STRUCT attributes. |
boolean |
getSynchronousMode()
Return the value of the synchronous mode switch for this connection. |
java.lang.String |
getUserName()
|
boolean |
getUsingXAFlag()
|
boolean |
getXAErrorFlag()
|
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)
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. |
int |
pingDatabase(int timeOut)
ping Database |
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 |
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 |
registerApiDescription(java.lang.String apiName,
short major,
short minor,
java.lang.String className)
When used in the Ultra driver, registers an ApiDescription for use in a Jolt connection. |
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)
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 |
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 |
setSessionTimeZone(java.lang.String regionName)
Set the session time zone. |
void |
setStmtCacheSize(int size)
Insert the method's description here. |
void |
setStmtCacheSize(int size,
boolean clearMetaData)
Insert the method's description here. |
void |
setSynchronousMode(boolean isSynchronous)
Set the value of the synchronous mode switch for this connection. |
void |
setUsingXAFlag(boolean value)
|
void |
setXAErrorFlag(boolean value)
|
void |
shutdown(int mode)
|
void |
startup(java.lang.String startup_str,
int mode)
|
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 |
public static final int DATABASE_OK
public static final int DATABASE_CLOSED
public static final int DATABASE_NOTOK
public static final int DATABASE_TIMEOUT
Method Detail |
public void archive(int mode, int aseq, java.lang.String acstext) throws java.sql.SQLException
mode
- aseq
- acstext
- public boolean getAutoClose() throws java.sql.SQLException
public int getDefaultExecuteBatch()
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
.
OracleStatement.setRowPrefetch
,
setDefaultRowPrefetch
public int getDefaultRowPrefetch()
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
.
OracleStatement.setRowPrefetch
,
setDefaultRowPrefetch
public java.lang.Object getDescriptor(java.lang.String sql_name)
public boolean getIncludeSynonyms()
public boolean getRestrictGetTables()
public java.lang.Object getJavaObject(java.lang.String sql_name) throws java.sql.SQLException
public boolean getRemarksReporting()
public java.lang.String getSQLType(java.lang.Object obj) throws java.sql.SQLException
public int getStmtCacheSize()
public short getStructAttrCsId() throws java.sql.SQLException
public java.lang.String getUserName() throws java.sql.SQLException
public boolean getUsingXAFlag()
public boolean getXAErrorFlag()
public int pingDatabase(int timeOut) throws java.sql.SQLException
public void putDescriptor(java.lang.String sql_name, java.lang.Object desc) throws java.sql.SQLException
public void registerSQLType(java.lang.String sql_name, java.lang.Class java_class) throws java.sql.SQLException
public void registerSQLType(java.lang.String sql_name, java.lang.String java_class_name) throws java.sql.SQLException
public void setAutoClose(boolean autoClose) throws java.sql.SQLException
public void setDefaultExecuteBatch(int batch) throws java.sql.SQLException
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.
OracleStatement.setRowPrefetch
,
getDefaultRowPrefetch
public void setDefaultRowPrefetch(int value) throws java.sql.SQLException
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
.
OracleStatement.setRowPrefetch
,
getDefaultRowPrefetch
public void setIncludeSynonyms(boolean synonyms)
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.
public void setRemarksReporting(boolean reportRemarks)
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.
public void setRestrictGetTables(boolean restrict)
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:
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.
public void setStmtCacheSize(int size) throws java.sql.SQLException
size
- intpublic void setStmtCacheSize(int size, boolean clearMetaData) throws java.sql.SQLException
size
- intclearMetaData
- booleanpublic void setUsingXAFlag(boolean value)
value
- public void setXAErrorFlag(boolean value)
value
- public void shutdown(int mode) throws java.sql.SQLException
mode
- public void startup(java.lang.String startup_str, int mode) throws java.sql.SQLException
startup_str
- mode
- public java.sql.Statement createStatementWithKey(java.lang.String key) throws java.sql.SQLException
key
- the key with which it was closedpublic java.sql.PreparedStatement prepareStatementWithKey(java.lang.String key) throws java.sql.SQLException
key
- the key with which it was closedpublic java.sql.CallableStatement prepareCallWithKey(java.lang.String key) throws java.sql.SQLException
key
- the key with which it was closedpublic void setCreateStatementAsRefCursor(boolean value)
setCreateStatementAsRefCursor
entrypoint
you have to cast the Connection object to the type
oracle.jdbc.OracleConnection
.public boolean getCreateStatementAsRefCursor()
getCreateStatementAsRefCursor
entrypoint
you have to cast the Connection object to the type
oracle.jdbc.OracleConnection
.setCreateStatementAsRefCursor(boolean)
public void setSessionTimeZone(java.lang.String regionName) throws java.sql.SQLException
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.
regionName
- Oracle session time zone region name.public java.lang.String getSessionTimeZone()
public void assertComplete() throws java.sql.SQLException
public boolean getSynchronousMode()
public void setSynchronousMode(boolean isSynchronous)
isSynchronous
- true if should run synchronously, false if asynchronously.public void registerApiDescription(java.lang.String apiName, short major, short minor, java.lang.String className)
apiName
- a String that names the generic api that this ApiDescription supportsmajor
- a short that specifies the major version number that this ApiDescription supportsminor
- a short that specifies the minor version number that this ApiDescription supportsclassName
- a String that is the fully qualified class name of the ApiDescription classpublic java.lang.Object openJoltConnection(java.lang.String apiName, short major, short minor)
apiName
- a String that names the generic api to be usedmajor
- the major version number of the highest version to be usedminor
- the minor version number of the highest version to be usedpublic java.sql.Connection _getPC()
public boolean isLogicalConnection()
public void registerTAFCallback(OracleOCIFailover cbk, java.lang.Object obj) throws java.sql.SQLException
cbk
- Callback instance.obj
- Context object in which any client's state can be
stored and provided when the callback method is
invoked.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |