Package oracle.jdbc

Class OracleConnectionWrapper

java.lang.Object
oracle.jdbc.OracleConnectionWrapper
All Implemented Interfaces:
AutoCloseable, Connection, Wrapper, OracleCommonConnection, OracleConnection

public class OracleConnectionWrapper extends Object implements OracleConnection
A simple implementation of a connection wrapper which may be nested to any depth.
  • Field Details

    • connection

      protected OracleConnection connection
      The connection that this wrapper wraps
  • Constructor Details

    • OracleConnectionWrapper

      public OracleConnectionWrapper()
    • OracleConnectionWrapper

      public OracleConnectionWrapper(OracleConnection toBeWrapped)
      Construct an instance which wraps the argument
      Parameters:
      toBeWrapped - Connection to wrap
  • Method Details

    • unwrap

      public OracleConnection unwrap()
      Unwrap one level. Returns the connection within this wrapper.
      Specified by:
      unwrap in interface OracleConnection
      Returns:
    • getDatabaseTimeZone

      public String getDatabaseTimeZone() throws SQLException
      Returns the database timezone.
      Throws:
      SQLException
    • setWrapper

      public void setWrapper(OracleConnection wrapper)
      Set a connection wrapper as the wrapper of this connection. Recursively sets the wrapper to the lowest level. Thus, the physical connection will always know its outermost wrapper The recursion is terminated by the method in oracle.jdbc.driver.OracleConnection which stores its argument.
      Specified by:
      setWrapper in interface OracleConnection
      Parameters:
      wrapper -
    • createStatement

      public Statement createStatement() throws SQLException
      Specified by:
      createStatement in interface Connection
      Throws:
      SQLException
    • prepareStatement

      public PreparedStatement prepareStatement(String sql) throws SQLException
      Specified by:
      prepareStatement in interface Connection
      Throws:
      SQLException
    • prepareCall

      public CallableStatement prepareCall(String sql) throws SQLException
      Specified by:
      prepareCall in interface Connection
      Throws:
      SQLException
    • nativeSQL

      public String nativeSQL(String sql) throws SQLException
      Specified by:
      nativeSQL in interface Connection
      Throws:
      SQLException
    • setAutoCommit

      public void setAutoCommit(boolean autoCommit) throws SQLException
      Specified by:
      setAutoCommit in interface Connection
      Throws:
      SQLException
    • getAutoCommit

      public boolean getAutoCommit() throws SQLException
      Specified by:
      getAutoCommit in interface Connection
      Throws:
      SQLException
    • commit

      public void commit() throws SQLException
      Specified by:
      commit in interface Connection
      Throws:
      SQLException
    • rollback

      public void rollback() throws SQLException
      Specified by:
      rollback in interface Connection
      Throws:
      SQLException
    • close

      public void close() throws SQLException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Connection
      Throws:
      SQLException
    • isClosed

      public boolean isClosed() throws SQLException
      Specified by:
      isClosed in interface Connection
      Throws:
      SQLException
    • getMetaData

      public DatabaseMetaData getMetaData() throws SQLException
      Specified by:
      getMetaData in interface Connection
      Throws:
      SQLException
    • setReadOnly

      public void setReadOnly(boolean readOnly) throws SQLException
      Specified by:
      setReadOnly in interface Connection
      Throws:
      SQLException
    • isReadOnly

      public boolean isReadOnly() throws SQLException
      Specified by:
      isReadOnly in interface Connection
      Throws:
      SQLException
    • setCatalog

      public void setCatalog(String catalog) throws SQLException
      Specified by:
      setCatalog in interface Connection
      Throws:
      SQLException
    • getCatalog

      public String getCatalog() throws SQLException
      Specified by:
      getCatalog in interface Connection
      Throws:
      SQLException
    • setTransactionIsolation

      public void setTransactionIsolation(int level) throws SQLException
      Specified by:
      setTransactionIsolation in interface Connection
      Throws:
      SQLException
    • getTransactionIsolation

      public int getTransactionIsolation() throws SQLException
      Specified by:
      getTransactionIsolation in interface Connection
      Throws:
      SQLException
    • getWarnings

      public SQLWarning getWarnings() throws SQLException
      Specified by:
      getWarnings in interface Connection
      Throws:
      SQLException
    • clearWarnings

      public void clearWarnings() throws SQLException
      Specified by:
      clearWarnings in interface Connection
      Throws:
      SQLException
    • createStatement

      public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException
      Specified by:
      createStatement in interface Connection
      Throws:
      SQLException
    • prepareStatement

      public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
      Specified by:
      prepareStatement in interface Connection
      Throws:
      SQLException
    • prepareCall

      public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
      Specified by:
      prepareCall in interface Connection
      Throws:
      SQLException
    • getTypeMap

      public Map<String,Class<?>> getTypeMap() throws SQLException
      Specified by:
      getTypeMap in interface Connection
      Throws:
      SQLException
    • setTypeMap

      public void setTypeMap(Map<String,Class<?>> map) throws SQLException
      Specified by:
      setTypeMap in interface Connection
      Throws:
      SQLException
    • isProxySession

      public boolean isProxySession()
      Description copied from interface: OracleConnection
      Returns true if the current session associated with this connection is a dual proxy session i.e when application explicitly calls openProxySession() on an existing connection. Returns false if the current session associated with this connection is a single proxy session i.e when user creates a proxy connection using DriverManager.getConnection(url, "proxy[client]", "proxy").
      Specified by:
      isProxySession in interface OracleConnection
      Returns:
      See Also:
    • openProxySession

      public void openProxySession(int mode, Properties prop) throws SQLException
      Description copied from interface: OracleConnection
      Opens a new proxy session with the username provided in the prop argument and switches to this new session.

      This feature is supported for both thin and oci driver.

      Three proxy types are supported :
      • OracleConnection.PROXYTYPE_USER_NAME : In this type PROXY_USER_NAME needs to be provided in prop. The value should be a java.lang.String;
      • OracleConnection.PROXYTYPE_DISTINGUISHED_NAME : In this type PROXY_DISTINGUISHED_NAME has to be set in prop. The value is a java.lang.String object;
      • OracleConnection.PROXYTYPE_CERTIFICATE : In this type PROXY_CERTIFICATE has to be set in prop. The value is a bytep[] which contains the certificate.
      Roles can also be provided in the property argument. The key is OracleConnection.PROXY_ROLES. The value is a String[] which contains the roles.
      Specified by:
      openProxySession in interface OracleConnection
      Parameters:
      mode - has to be either OracleConnection.PROXYTYPE_USER_NAME or OracleConnection.PROXYTYPE_DISTINGUISHED_NAME or OracleConnection.PROXYTYPE_CERTIFICATE
      prop - keys/values
      Throws:
      SQLException
    • archive

      public void archive(int mode, int aseq, String acstext) throws SQLException
      Description copied from interface: OracleConnection
      Not implemented.
      Specified by:
      archive in interface OracleConnection
      Throws:
      SQLException
    • getAutoClose

      public boolean getAutoClose() throws SQLException
      Description copied from interface: OracleConnection
      The driver is always in auto-close mode.
      Specified by:
      getAutoClose in interface OracleConnection
      Returns:
      should always return true
      Throws:
      SQLException - should never been raised
      See Also:
    • getCallWithKey

      public CallableStatement getCallWithKey(String key) throws SQLException
      Description copied from interface: OracleConnection
      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).
      Specified by:
      getCallWithKey in interface OracleConnection
      Parameters:
      key - Specified key to search for
      Returns:
      Throws:
      SQLException
    • getDefaultExecuteBatch

      public int getDefaultExecuteBatch()
      Description copied from interface: OracleConnection
      Executions are not batched but sent immediately. Oracle style of batching has been deprecated in 12.1 and made a no-op in 12.2. We recommend using the standard model of batching.
      Specified by:
      getDefaultExecuteBatch in interface OracleConnection
      Returns:
      the batch value, always 1.
      See Also:
    • getDefaultRowPrefetch

      public int getDefaultRowPrefetch()
      Description copied from interface: OracleConnection
      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();

      Specified by:
      getDefaultRowPrefetch in interface OracleConnection
      Returns:
      the row prefetch value
      See Also:
    • getDescriptor

      public Object getDescriptor(String sql_name)
      Description copied from interface: OracleConnection
      Gets a Descriptor object corresponding to a sql type.
      Specified by:
      getDescriptor in interface OracleConnection
      Parameters:
      sql_name - the sql type
      Returns:
      the Descriptor Object that matches the sql type
      See Also:
    • doGetDescriptor

      public Object doGetDescriptor(String sql_name)
    • getEndToEndMetrics

      public String[] getEndToEndMetrics() throws SQLException
      Description copied from interface: OracleConnection
      Gets the values of the end-to-end metrics, if any. Does not include the sequence number. If DMS is in use and metrics have been set via DMS, this method will return the metrics set via DMS, not those set via setEndToEndMetrics. The DMS metric override the metrics set by setEndToEndMetrics.
      Specified by:
      getEndToEndMetrics in interface OracleConnection
      Returns:
      a String[]. The indices are the END_TO_END_XXX_INDEX constants. The values are the values of the corresponding metrics.
      Throws:
      SQLException - if an error occurs
      See Also:
    • getEndToEndECIDSequenceNumber

      public short getEndToEndECIDSequenceNumber() throws SQLException
      Description copied from interface: OracleConnection
      Gets the current end to end tracing context id sequence number. This could be any of the following values: the value passed in the most recent call to setEndToEndMetrics the value returned by the database after the most recent statement execution the value incremented by JDBC diagnostic messages the value JDBC retrieved from DMS (only in a DMS environment)
      Specified by:
      getEndToEndECIDSequenceNumber in interface OracleConnection
      Returns:
      the current ECID sequence number
      Throws:
      SQLException - if an error occurs
      See Also:
    • getIncludeSynonyms

      public boolean getIncludeSynonyms()
      Description copied from interface: OracleConnection
      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.
      Specified by:
      getIncludeSynonyms in interface OracleConnection
      Returns:
      true if DatabaseMetaData.getColumns will report information if a table synonym is passed in, and false otherwise
      See Also:
    • getRestrictGetTables

      public boolean getRestrictGetTables()
      Description copied from interface: OracleConnection
      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.

      Specified by:
      getRestrictGetTables in interface OracleConnection
      Returns:
      true if the information returned by DatabaseMetaData.getTables is restricted, and false otherwise
      See Also:
    • getImplicitCachingEnabled

      public boolean getImplicitCachingEnabled() throws SQLException
      Description copied from interface: OracleConnection
      getImplicitCachingEnabled Returns true if the implicit cache is currently enabled, false otherwise. This method is valid on both logical and physical connections.
      Specified by:
      getImplicitCachingEnabled in interface OracleConnection
      Returns:
      Throws:
      SQLException
    • getExplicitCachingEnabled

      public boolean getExplicitCachingEnabled() throws SQLException
      Description copied from interface: OracleConnection
      getExplicitCachingEnabled Returns true if the explicit cache is currently enabled, false otherwise. This method is valid on both logical and physical connections.
      Specified by:
      getExplicitCachingEnabled in interface OracleConnection
      Returns:
      Throws:
      SQLException
    • getJavaObject

      public Object getJavaObject(String sql_name) throws SQLException
      Specified by:
      getJavaObject in interface OracleConnection
      Throws:
      SQLException
    • getRemarksReporting

      public boolean getRemarksReporting()
      Description copied from interface: OracleConnection
      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.

      Specified by:
      getRemarksReporting in interface OracleConnection
      Returns:
      true if the DatabaseMetaData calls getTables and getColumns will report the REMARKS column and false otherwise
      See Also:
    • getSQLType

      public String getSQLType(Object obj) throws SQLException
      Specified by:
      getSQLType in interface OracleConnection
      Throws:
      SQLException
    • getStmtCacheSize

      public int getStmtCacheSize()
      Specified by:
      getStmtCacheSize in interface OracleConnection
    • getStatementCacheSize

      public int getStatementCacheSize() throws SQLException
      Description copied from interface: OracleConnection
      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.
      Specified by:
      getStatementCacheSize in interface OracleConnection
      Returns:
      the cache size
      Throws:
      SQLException
    • getStatementWithKey

      public PreparedStatement getStatementWithKey(String key) throws SQLException
      Description copied from interface: OracleConnection
      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).
      Specified by:
      getStatementWithKey in interface OracleConnection
      Parameters:
      key - Specified key to search for
      Returns:
      Throws:
      SQLException
    • getStructAttrCsId

      public short getStructAttrCsId() throws SQLException
      Description copied from interface: OracleConnection
      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.
      Specified by:
      getStructAttrCsId in interface OracleConnection
      Returns:
      the Oracle identifier of the character set.
      Throws:
      SQLException - if Conversion is null
      See Also:
    • getUserName

      public String getUserName() throws SQLException
      Description copied from interface: OracleConnection
      Gets the user name of the current connection.

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

      Specified by:
      getUserName in interface OracleConnection
      Returns:
      the user name
      Throws:
      SQLException - if the logical connection is closed
    • getCurrentSchema

      public String getCurrentSchema() throws SQLException
      Description copied from interface: OracleConnection
      Obtains the current schema of the current connection.

      Specified by:
      getCurrentSchema in interface OracleConnection
      Returns:
      current_schema value
      Throws:
      SQLException - If there was an error while fetching the results
    • getUsingXAFlag

      public boolean getUsingXAFlag()
      Description copied from interface: OracleConnection
      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.
      Specified by:
      getUsingXAFlag in interface OracleConnection
      Returns:
      true when using XA to manage distributed transactions and false otherwise.
      See Also:
    • getXAErrorFlag

      public boolean getXAErrorFlag()
      Description copied from interface: OracleConnection
      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.

      Specified by:
      getXAErrorFlag in interface OracleConnection
      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:
    • oracleSetSavepoint

      public OracleSavepoint oracleSetSavepoint() throws SQLException
      Description copied from interface: OracleConnection
      Creates an unnamed savepoint in the current transaction and returns the new OracleSavepoint object that represents it.
      Specified by:
      oracleSetSavepoint in interface OracleConnection
      Returns:
      the new OracleSavepoint object
      Throws:
      SQLException - if a database access error occurs or this Connection object is currently in auto-commit mode
      See Also:
    • oracleSetSavepoint

      public OracleSavepoint oracleSetSavepoint(String name) throws SQLException
      Description copied from interface: OracleConnection
      Creates a savepoint with the given name in the current transaction and returns the new OracleSavepoint object that represents it.
      Specified by:
      oracleSetSavepoint in interface OracleConnection
      Parameters:
      name - a String containing the name of the savepoint
      Returns:
      the new OracleSavepoint object
      Throws:
      SQLException - if a database access error occurs or this Connection object is currently in auto-commit mode
      See Also:
    • oracleRollback

      public void oracleRollback(OracleSavepoint savepoint) throws SQLException
      Description copied from interface: OracleConnection
      Undoes all changes made after the given OracleSavepoint object was set.

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

      Specified by:
      oracleRollback in interface OracleConnection
      Parameters:
      savepoint - the OracleSavepoint object to roll back to
      Throws:
      SQLException - if a database access error occurs, the OracleSavepoint object is no longer valid, or this Connection object is currently in auto-commit mode
      See Also:
    • oracleReleaseSavepoint

      public void oracleReleaseSavepoint(OracleSavepoint savepoint) throws SQLException
      Description copied from interface: OracleConnection
      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.
      Specified by:
      oracleReleaseSavepoint in interface OracleConnection
      Parameters:
      savepoint - the OracleSavepoint object to be removed
      Throws:
      SQLException - if a database access error occurs or the given OracleSavepoint object is not a valid savepoint in the current transaction
      See Also:
    • pingDatabase

      public int pingDatabase() throws SQLException
      Description copied from interface: OracleConnection
      Ping Database server to see if both database and the connection are actively up.
      Specified by:
      pingDatabase in interface OracleConnection
      Returns:
      DATABASE_OK if the database server is up, and DATABASE_CLOSED if any error occurs.
      Throws:
      SQLException
    • pingDatabase

      public int pingDatabase(int timeOut) throws SQLException
      Description copied from interface: OracleConnection
      ping Database
      Specified by:
      pingDatabase in interface OracleConnection
      Returns:
      Throws:
      SQLException
    • purgeExplicitCache

      public void purgeExplicitCache() throws SQLException
      Description copied from interface: OracleConnection
      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.
      Specified by:
      purgeExplicitCache in interface OracleConnection
      Throws:
      SQLException
    • purgeImplicitCache

      public void purgeImplicitCache() throws SQLException
      Description copied from interface: OracleConnection
      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.
      Specified by:
      purgeImplicitCache in interface OracleConnection
      Throws:
      SQLException
    • putDescriptor

      public void putDescriptor(String sql_name, Object desc) throws SQLException
      Description copied from interface: OracleConnection
      Store the Object Descriptor for later usage.
      Specified by:
      putDescriptor in interface OracleConnection
      Parameters:
      sql_name - the sql type
      desc - the Object Descriptor associated
      Throws:
      SQLException - if sql_name or desc is null
      See Also:
    • removeDescriptor

      public void removeDescriptor(String sql_name)
      Description copied from interface: OracleConnection
      Removes the Descriptor object corresponding to a sql type from the cache.
      Specified by:
      removeDescriptor in interface OracleConnection
    • removeDescriptor

      public void removeDescriptor(byte[] toid)
      Description copied from interface: OracleConnection
      Removes the Descriptor object corresponding to a byte[] toid from the cache. inserted using the putDescriptor(byte[] toid, Object desc)
      Specified by:
      removeDescriptor in interface OracleConnection
    • removeAllDescriptor

      public void removeAllDescriptor()
      Description copied from interface: OracleConnection
      When STRUCT objects type is created/used/dropped/created/used/dropped (same name but different attributes) with the same Connection, then to avoid this Exception: ORA-21700: object does not exist or is marked for delete. removeAllDescriptor or removeDescriptor should be invoked to remove an existing cached Descriptor
      Specified by:
      removeAllDescriptor in interface OracleConnection
    • registerSQLType

      public void registerSQLType(String sql_name, Class<?> java_class) throws SQLException
      Specified by:
      registerSQLType in interface OracleConnection
      Throws:
      SQLException
    • registerSQLType

      public void registerSQLType(String sql_name, String java_class_name) throws SQLException
      Specified by:
      registerSQLType in interface OracleConnection
      Throws:
      SQLException
    • setAutoClose

      public void setAutoClose(boolean autoClose) throws SQLException
      Description copied from interface: OracleConnection
      set auto-close mode. Only true is accepted.
      Specified by:
      setAutoClose in interface OracleConnection
      Parameters:
      autoClose - the boolean value
      Throws:
      SQLException - when the argument autoClose is false
      See Also:
    • setDefaultExecuteBatch

      public void setDefaultExecuteBatch(int batch) throws SQLException
      Description copied from interface: OracleConnection
      Executions are not batched but sent immediately. Oracle style of batching has been deprecated in 12.1 and made a no-op in 12.2. We recommend using the standard model of batching.
      Specified by:
      setDefaultExecuteBatch in interface OracleConnection
      Parameters:
      batch - value is discarded.
      Throws:
      SQLException - never thrown.
      See Also:
    • setDefaultRowPrefetch

      public void setDefaultRowPrefetch(int value) throws SQLException
      Description copied from interface: OracleConnection
      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.

      Specified by:
      setDefaultRowPrefetch in interface OracleConnection
      Parameters:
      value - the number of rows to prefetch
      Throws:
      SQLException - if the argument value is <=0
      See Also:
    • setEndToEndMetrics

      public void setEndToEndMetrics(String[] metrics, short sequenceNumber) throws SQLException
      Description copied from interface: OracleConnection
      Sets the values of the end-to-end tracing metrics. The indices for the array are the END_TO_END_XXX_INDEX values defined in this class. The values set by this method are overridden by any values set via DMS if DMS is in use.
      Specified by:
      setEndToEndMetrics in interface OracleConnection
      Parameters:
      metrics - String[] containing the metric values.
      sequenceNumber - the sequence number for the context id
      Throws:
      SQLException - if an error occurs
      See Also:
    • setExplicitCachingEnabled

      public void setExplicitCachingEnabled(boolean cache) throws SQLException
      Description copied from interface: OracleConnection
      setExplicitCachingEnabled Enables or disables the explicit cache. Note that this is independent of the cache size, set with setStatmentCacheSize().
      Specified by:
      setExplicitCachingEnabled in interface OracleConnection
      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:
      SQLException - if called on a logical connection.
    • setImplicitCachingEnabled

      public void setImplicitCachingEnabled(boolean cache) throws SQLException
      Description copied from interface: OracleConnection
      setImplicitCachingEnabled Enables or disables the implicit cache. Note that this is independent of the cache size, set with setStatmentCacheSize().
      Specified by:
      setImplicitCachingEnabled in interface OracleConnection
      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:
      SQLException - if called on a logical connection.
    • setIncludeSynonyms

      public void setIncludeSynonyms(boolean synonyms)
      Description copied from interface: OracleConnection
      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.

      Specified by:
      setIncludeSynonyms in interface OracleConnection
      Parameters:
      synonyms - true if you want to retrieve synonym information in DatabaseMetaData.getColumns and false otherwise.
      See Also:
    • setRemarksReporting

      public void setRemarksReporting(boolean reportRemarks)
      Description copied from interface: OracleConnection
      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.

      Specified by:
      setRemarksReporting in interface OracleConnection
      Parameters:
      reportRemarks - true if you want to turn on the reporting of the REMARKS columns and false otherwise.
      See Also:
    • setRestrictGetTables

      public void setRestrictGetTables(boolean restrict)
      Description copied from interface: OracleConnection
      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);

      Specified by:
      setRestrictGetTables in interface OracleConnection
      Parameters:
      restrict - true to turn on the restriction and false otherwise.
      See Also:
    • setStmtCacheSize

      public void setStmtCacheSize(int size) throws SQLException
      Specified by:
      setStmtCacheSize in interface OracleConnection
      Throws:
      SQLException
    • setStatementCacheSize

      public void setStatementCacheSize(int size) throws SQLException
      Description copied from interface: OracleConnection
      setStatementCacheSize Specifies the size of the size of the application cache (which will be used by both implicit and explicit caching).
      Specified by:
      setStatementCacheSize in interface OracleConnection
      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:
      SQLException - if size < 0, or if called on a logical connection.
    • setStmtCacheSize

      public void setStmtCacheSize(int size, boolean clearMetaData) throws SQLException
      Specified by:
      setStmtCacheSize in interface OracleConnection
      Throws:
      SQLException
    • setUsingXAFlag

      public void setUsingXAFlag(boolean value)
      Description copied from interface: OracleConnection
      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.

      Specified by:
      setUsingXAFlag in interface OracleConnection
      Parameters:
      value - the value of the UsingXA flag
      See Also:
    • setXAErrorFlag

      public void setXAErrorFlag(boolean value)
      Description copied from interface: OracleConnection
      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.
      Specified by:
      setXAErrorFlag in interface OracleConnection
      Parameters:
      value - the value of the XAError flag
      See Also:
    • shutdown

      public void shutdown(OracleConnection.DatabaseShutdownMode mode) throws SQLException
      Description copied from interface: OracleConnection
      Shuts the database server down. This method requires to be connected as either SYSOPER or SYSDBA.
      Specified by:
      shutdown in interface OracleConnection
      Parameters:
      mode - can be either
      • OracleConnection.DatabaseShutdownMode.CONNECT
      • OracleConnection.DatabaseShutdownMode.TRANSACTIONAL
      • OracleConnection.DatabaseShutdownMode.TRANSACTIONAL_LOCAL
      • OracleConnection.DatabaseShutdownMode.IMMEDIATE
      • OracleConnection.DatabaseShutdownMode.ABORT
      • OracleConnection.DatabaseShutdownMode.FINAL
      Throws:
      SQLException
    • startup

      public void startup(String startup_str, int mode) throws SQLException
      Description copied from interface: OracleConnection
      Not implemented
      Specified by:
      startup in interface OracleConnection
      Throws:
      SQLException
    • startup

      public void startup(OracleConnection.DatabaseStartupMode mode) throws SQLException
      Description copied from interface: OracleConnection
      Starts the database server up. This method requires to be connected as either SYSOPER or SYSDBA in the PRELIM_AUTH mode which is the only mode permietted when the database is down (see the connection property CONNECTION_PROPERTY_PRELIM_AUTH).
      Specified by:
      startup in interface OracleConnection
      Parameters:
      mode - can be either
      • OracleConnection.DatabaseStartupMode.NO_RESTRICTION
      • OracleConnection.DatabaseStartupMode.FORCE
      • OracleConnection.DatabaseStartupMode.RESTRICT
      Throws:
      SQLException
    • startup

      public void startup(OracleConnection.DatabaseStartupMode mode, String pfileName) throws SQLException
      Description copied from interface: OracleConnection
      Starts the database server up. This method requires to be connected as either SYSOPER or SYSDBA in the PRELIM_AUTH mode which is the only mode permietted when the database is down (see the connection property CONNECTION_PROPERTY_PRELIM_AUTH).
      Specified by:
      startup in interface OracleConnection
      Parameters:
      mode - can be either
      • OracleConnection.DatabaseStartupMode.NO_RESTRICTION
      • OracleConnection.DatabaseStartupMode.FORCE
      • OracleConnection.DatabaseStartupMode.RESTRICT
      pfileName - : PFILE name. If client-side parameter file is null or doesn't exist, it will throw exception otherwise read the file and pass parameters to server.
      Throws:
      SQLException
    • prepareStatementWithKey

      public PreparedStatement prepareStatementWithKey(String key) throws SQLException
      Specified by:
      prepareStatementWithKey in interface OracleConnection
      Parameters:
      key - the key with which it was closed
      Returns:
      a OraclePreparedStatement object
      Throws:
      SQLException - if a database access error occurs
    • prepareCallWithKey

      public CallableStatement prepareCallWithKey(String key) throws SQLException
      Specified by:
      prepareCallWithKey in interface OracleConnection
      Parameters:
      key - the key with which it was closed
      Returns:
      a java.sql.CallableStatement object
      Throws:
      SQLException - if a database access error occurs
    • setCreateStatementAsRefCursor

      public void setCreateStatementAsRefCursor(boolean value)
      Description copied from interface: OracleConnection
      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.

      Specified by:
      setCreateStatementAsRefCursor in interface OracleConnection
      Parameters:
      value - true if new statements should be created as REF CURSORS, false otherwise
      See Also:
    • getCreateStatementAsRefCursor

      public boolean getCreateStatementAsRefCursor()
      Description copied from interface: OracleConnection
      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.

      Specified by:
      getCreateStatementAsRefCursor in interface OracleConnection
      Returns:
      the current setting of the createStatementAsRefCursor flag
      See Also:
    • setSessionTimeZone

      public void setSessionTimeZone(String regionName) throws SQLException
      Description copied from interface: OracleConnection
      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 and saves the session timezone so that any TSLTZ data accessed via Jdbc are adjusted using the session timezone.

      Specified by:
      setSessionTimeZone in interface OracleConnection
      Parameters:
      regionName - Oracle session time zone region name.
      Throws:
      SQLException - if an error occurred.
    • getSessionTimeZone

      public String getSessionTimeZone()
      Description copied from interface: OracleConnection
      Obtain Oracle session time zone region name.
      Specified by:
      getSessionTimeZone in interface OracleConnection
      Returns:
      Oracle session time zone region name.
    • getSessionTimeZoneOffset

      public String getSessionTimeZoneOffset() throws SQLException
      Description copied from interface: OracleConnection
      Obtain the time zone offset in hours of the current database session. The result will always be accurate. In other words, you can execute "ALTER SESSION SET TIME_ZONE ..." and then call this method, it will return the new value.

      The value returned by this method is that same as the result of "SELECT SESSIONTIMEZONE FROM DUAL;". The drivers may use some performance optimization to not use a roundtrip to the server so it is always preferrable to use this method.

      Specified by:
      getSessionTimeZoneOffset in interface OracleConnection
      Returns:
      Oracle session time zone in hours. For example "-7:00" or "0:00"
      Throws:
      SQLException
    • _getPC

      public Connection _getPC()
      Description copied from interface: OracleConnection
      Return the underlying physical connection if this is a logical connection. Returns null otherwise.
      Specified by:
      _getPC in interface OracleConnection
      Returns:
      Connection object if its a logical handle otherwise returns null
    • isLogicalConnection

      public boolean isLogicalConnection()
      Description copied from interface: OracleConnection
      Method that returns a boolean indicating whether its a logical connection or not.
      Specified by:
      isLogicalConnection in interface OracleConnection
      Returns:
      boolean true if this is a logical connection
    • registerTAFCallback

      public void registerTAFCallback(OracleOCIFailover cbk, Object obj) throws SQLException
      Description copied from interface: OracleConnection
      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.
      Specified by:
      registerTAFCallback in interface OracleConnection
      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:
      SQLException - if this method is invoked in drivers other than the Jdbc OCI driver.
    • getProperties

      public Properties getProperties()
      Description copied from interface: OracleConnection

      Returns connection properties that are currently in effect for this connection.

      The keys of the returned Properties object are a subset of the String constants declared by this class with names that begin with CONNECTION_PROPERTY_. The values of the returned Properties object reflect the current state of this connection, and may be different from the values specified when this connection was created. For instance, if this connection is connected to a database that has disabled result caching, then the value of OracleConnection.CONNECTION_PROPERTY_ENABLE_QUERY_RESULT_CACHE will be "false", regardless of any value that may have been specified for that property when this when this connection was created.

      The returned Propeties object does not contain the values of sensitive properties, such as passwords.

      Specified by:
      getProperties in interface OracleConnection
      Returns:
      Properties that are in effect for this connection. Not null. Not retained.
    • close

      public void close(int opt) throws SQLException
      Description copied from interface: OracleConnection
      If opt is OracleConnection.INVALID_CONNECTION : Closes the given Logical connection, as well the underlying PooledConnection without returning the connection to the cache when called with the parameter INVALID_CONNECTION. If this API is called on a physical connection, the supplied parameter has no effect.

      If opt is OracleConnection.PROXY_SESSION : Closes the proxy session (opened with openProxySession()).
      Specified by:
      close in interface OracleConnection
      Parameters:
      opt - set to INVALID_CONNECTION to close the PooledConnection
      Throws:
      SQLException - if a database access error occurs
    • setPlsqlWarnings

      public void setPlsqlWarnings(String setting) throws SQLException
      Description copied from interface: OracleConnection
      Enable/Disable PLSQL Compiler Warnings
      Specified by:
      setPlsqlWarnings in interface OracleConnection
      Parameters:
      setting - Setting specified for ALTER SESSION SET PLSQL_WARNINGS. Sample values are: "'ENABLE:ALL'", "'DISABLE:ALL'", "'ENALBLE:INFORMATIONAL'", etc. Please refer to the SQL reference of ALTER SESSION SET PLSQL_WARNINGS for more information. If the setting is "'DISABLE:ALL'", jdbc drivers turn off PLSQL Compiler Warnings. Note: the quotes(') in the setting String are necessary.
      Throws:
      SQLException - if a database access error occurs
    • setHoldability

      public void setHoldability(int holdability) throws SQLException
      Specified by:
      setHoldability in interface Connection
      Throws:
      SQLException
    • getHoldability

      public int getHoldability() throws SQLException
      Specified by:
      getHoldability in interface Connection
      Throws:
      SQLException
    • createStatement

      public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
      Specified by:
      createStatement in interface Connection
      Throws:
      SQLException
    • prepareStatement

      public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
      Specified by:
      prepareStatement in interface Connection
      Throws:
      SQLException
    • prepareCall

      public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
      Specified by:
      prepareCall in interface Connection
      Throws:
      SQLException
    • setSavepoint

      public Savepoint setSavepoint() throws SQLException
      Specified by:
      setSavepoint in interface Connection
      Throws:
      SQLException
    • setSavepoint

      public Savepoint setSavepoint(String name) throws SQLException
      Specified by:
      setSavepoint in interface Connection
      Throws:
      SQLException
    • rollback

      public void rollback(Savepoint savepoint) throws SQLException
      Specified by:
      rollback in interface Connection
      Throws:
      SQLException
    • releaseSavepoint

      public void releaseSavepoint(Savepoint savepoint) throws SQLException
      Specified by:
      releaseSavepoint in interface Connection
      Throws:
      SQLException
    • prepareStatement

      public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException
      Specified by:
      prepareStatement in interface Connection
      Throws:
      SQLException
    • prepareStatement

      public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
      Specified by:
      prepareStatement in interface Connection
      Throws:
      SQLException
    • prepareStatement

      public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
      Specified by:
      prepareStatement in interface Connection
      Throws:
      SQLException
    • createARRAY

      public ARRAY createARRAY(String typeName, Object elements) throws SQLException
      Creates an ARRAY object with the given type name and elements.
      Specified by:
      createARRAY in interface OracleConnection
      Parameters:
      typeName - the name of the SQL type of the created object
      elements - the elements of the created object
      Returns:
      an ARRAY
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createOracleArray

      public Array createOracleArray(String arrayTypeName, Object elements) throws SQLException
      Creates an Array object with the given type name and elements. The standard createArrayOf accepts the element type name. This method accepts the type of the array itself. Oracle does not support anonymous array types and so does not support the standard createArrayOf method.
      Specified by:
      createOracleArray in interface OracleConnection
      Parameters:
      arrayTypeName - the name of the SQL type of the created object
      elements - the elements of the created object
      Returns:
      an ARRAY
      Throws:
      SQLException - if a database error occurs
      Since:
      11.2.0.5.0
    • createBINARY_DOUBLE

      public BINARY_DOUBLE createBINARY_DOUBLE(double value) throws SQLException
      Creates a BINARY_DOUBLE that has the given value.
      Specified by:
      createBINARY_DOUBLE in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new BINARY_DOUBLE
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createBINARY_FLOAT

      public BINARY_FLOAT createBINARY_FLOAT(float value) throws SQLException
      Creates a BINARY_FLOAT that has the given value.
      Specified by:
      createBINARY_FLOAT in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new BINARY_FLOAT
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      public DATE createDATE(Date value) throws SQLException
      Creates a DATE that has the given value.
      Specified by:
      createDATE in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new DATE
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      public DATE createDATE(Time value) throws SQLException
      Creates a DATE that has the given value.
      Specified by:
      createDATE in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new DATE
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      public DATE createDATE(Timestamp value) throws SQLException
      Creates a DATE that has the given value.
      Specified by:
      createDATE in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new DATE
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      public DATE createDATE(Date value, Calendar cal) throws SQLException
      Creates a DATE that has the given value. The value is interpreted as being in the time zone represented by cal.
      Specified by:
      createDATE in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone in which the value is interpreted
      Returns:
      a new DATE
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      public DATE createDATE(Time value, Calendar cal) throws SQLException
      Creates a DATE that has the given value. The value is interpreted as being in the time zone represented by cal.
      Specified by:
      createDATE in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone in which the value is interpreted
      Returns:
      a new DATE
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      public DATE createDATE(Timestamp value, Calendar cal) throws SQLException
      Creates a DATE that has the given value. The value is interpreted as being in the time zone represented by cal.
      Specified by:
      createDATE in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone in which the value is interpreted
      Returns:
      a new DATE
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createDATE

      public DATE createDATE(String value) throws SQLException
      Creates a DATE that has the given value.
      Specified by:
      createDATE in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new DATE
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createINTERVALDS

      public INTERVALDS createINTERVALDS(String value) throws SQLException
      Creates an INTERVALDS that has the given value.
      Specified by:
      createINTERVALDS in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new INTERVALDS
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createINTERVALYM

      public INTERVALYM createINTERVALYM(String value) throws SQLException
      Creates an INTERVALYM that has the given value.
      Specified by:
      createINTERVALYM in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new INTERVALYM
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      public NUMBER createNUMBER(boolean value) throws SQLException
      Creates a new NUMBER that has the given value.
      Specified by:
      createNUMBER in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      public NUMBER createNUMBER(byte value) throws SQLException
      Creates a new NUMBER that has the given value.
      Specified by:
      createNUMBER in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      public NUMBER createNUMBER(short value) throws SQLException
      Creates a new NUMBER that has the given value.
      Specified by:
      createNUMBER in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      public NUMBER createNUMBER(int value) throws SQLException
      Creates a new NUMBER that has the given value.
      Specified by:
      createNUMBER in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      public NUMBER createNUMBER(long value) throws SQLException
      Creates a new NUMBER that has the given value.
      Specified by:
      createNUMBER in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      public NUMBER createNUMBER(float value) throws SQLException
      Creates a new NUMBER that has the given value.
      Specified by:
      createNUMBER in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      public NUMBER createNUMBER(double value) throws SQLException
      Creates a new NUMBER that has the given value.
      Specified by:
      createNUMBER in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      public NUMBER createNUMBER(BigDecimal value) throws SQLException
      Creates a new NUMBER that has the given value.
      Specified by:
      createNUMBER in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      public NUMBER createNUMBER(BigInteger value) throws SQLException
      Creates a new NUMBER that has the given value.
      Specified by:
      createNUMBER in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new NUMBER
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createNUMBER

      public NUMBER createNUMBER(String value, int scale) throws SQLException
      Creates a new NUMBER that has the given value and scale.
      Specified by:
      createNUMBER in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      scale - the scale of the new object
      Returns:
      a new NUMBER
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMP

      public TIMESTAMP createTIMESTAMP(Date value) throws SQLException
      Creates a new TIMESTAMP with the given value.
      Specified by:
      createTIMESTAMP in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMP
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMP

      public TIMESTAMP createTIMESTAMP(DATE value) throws SQLException
      Creates a new TIMESTAMP with the given value.
      Specified by:
      createTIMESTAMP in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMP
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMP

      public TIMESTAMP createTIMESTAMP(Time value) throws SQLException
      Creates a new TIMESTAMP with the given value.
      Specified by:
      createTIMESTAMP in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMP
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMP

      public TIMESTAMP createTIMESTAMP(Timestamp value) throws SQLException
      Creates a new TIMESTAMP with the given value.
      Specified by:
      createTIMESTAMP in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMP
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMP

      public TIMESTAMP createTIMESTAMP(Timestamp value, Calendar cal) throws SQLException
      Creates a new TIMESTAMP with the given value.
      Specified by:
      createTIMESTAMP in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMP
      Throws:
      SQLException - if a database error occurs
      Since:
      12R2
    • createTIMESTAMP

      public TIMESTAMP createTIMESTAMP(String value) throws SQLException
      Creates a new TIMESTAMP with the given value.
      Specified by:
      createTIMESTAMP in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMP
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      public TIMESTAMPTZ createTIMESTAMPTZ(Date value) throws SQLException
      Creates a new TIMESTAMPTZ with the given value.
      Specified by:
      createTIMESTAMPTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMPTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      public TIMESTAMPTZ createTIMESTAMPTZ(Date value, Calendar cal) throws SQLException
      Creates a new TIMESTAMPTZ with the given value. The value is interpreted in the time zone of the calendar.
      Specified by:
      createTIMESTAMPTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      public TIMESTAMPTZ createTIMESTAMPTZ(Time value) throws SQLException
      Creates a new TIMESTAMPTZ with the given value.
      Specified by:
      createTIMESTAMPTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMPTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      public TIMESTAMPTZ createTIMESTAMPTZ(Time value, Calendar cal) throws SQLException
      Creates a new TIMESTAMPTZ with the given value. The value is interpreted in the time zone of the calendar.
      Specified by:
      createTIMESTAMPTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      public TIMESTAMPTZ createTIMESTAMPTZ(Timestamp value) throws SQLException
      Creates a new TIMESTAMPTZ with the given value.
      Specified by:
      createTIMESTAMPTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMPTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      public TIMESTAMPTZ createTIMESTAMPTZ(Timestamp value, Calendar cal) throws SQLException
      Creates a new TIMESTAMPTZ with the given value. The value is interpreted in the time zone of the calendar.
      Specified by:
      createTIMESTAMPTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      public TIMESTAMPTZ createTIMESTAMPTZ(Timestamp value, ZoneId tzid) throws SQLException
      Creates a new TIMESTAMPTZ with the given value.
      Specified by:
      createTIMESTAMPTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      tzid - the ZoneId of the value
      Returns:
      a new TIMESTAMPTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      public TIMESTAMPTZ createTIMESTAMPTZ(String value) throws SQLException
      Creates a new TIMESTAMPTZ with the given value.
      Specified by:
      createTIMESTAMPTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      Returns:
      a new TIMESTAMPTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      public TIMESTAMPTZ createTIMESTAMPTZ(String value, Calendar cal) throws SQLException
      Creates a new TIMESTAMPTZ with the given value. The value is interpreted in the time zone of the calendar.
      Specified by:
      createTIMESTAMPTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPTZ

      public TIMESTAMPTZ createTIMESTAMPTZ(DATE value) throws SQLException
      Specified by:
      createTIMESTAMPTZ in interface OracleConnection
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPLTZ

      public TIMESTAMPLTZ createTIMESTAMPLTZ(Date value, Calendar cal) throws SQLException
      Creates a new TIMESTAMPLTZ with the given value. The value is interpreted in the time zone of the calendar.
      Specified by:
      createTIMESTAMPLTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPLTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPLTZ

      public TIMESTAMPLTZ createTIMESTAMPLTZ(Time value, Calendar cal) throws SQLException
      Creates a new TIMESTAMPLTZ with the given value. The value is interpreted in the time zone of the calendar.
      Specified by:
      createTIMESTAMPLTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPLTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPLTZ

      public TIMESTAMPLTZ createTIMESTAMPLTZ(Timestamp value, Calendar cal) throws SQLException
      Creates a new TIMESTAMPLTZ with the given value. The value is interpreted in the time zone of the calendar.
      Specified by:
      createTIMESTAMPLTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPLTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPLTZ

      public TIMESTAMPLTZ createTIMESTAMPLTZ(String value, Calendar cal) throws SQLException
      Creates a new TIMESTAMPLTZ with the given value. The value is interpreted in the time zone of the calendar.
      Specified by:
      createTIMESTAMPLTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPLTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createTIMESTAMPLTZ

      public TIMESTAMPLTZ createTIMESTAMPLTZ(DATE value, Calendar cal) throws SQLException
      Creates a new TIMESTAMPLTZ with the given value. The value is interpreted in the time zone of the calendar.
      Specified by:
      createTIMESTAMPLTZ in interface OracleConnection
      Parameters:
      value - the value that the new object should represent
      cal - the timezone of the value
      Returns:
      a new TIMESTAMPLTZ
      Throws:
      SQLException - if a database error occurs
      Since:
      11R1
    • createArrayOf

      public Array createArrayOf(String typeName, Object[] elements) throws SQLException
      Specified by:
      createArrayOf in interface Connection
      Throws:
      SQLException
    • createBlob

      public Blob createBlob() throws SQLException
      Specified by:
      createBlob in interface Connection
      Throws:
      SQLException
    • createClob

      public Clob createClob() throws SQLException
      Specified by:
      createClob in interface Connection
      Throws:
      SQLException
    • createNClob

      public NClob createNClob() throws SQLException
      Specified by:
      createNClob in interface Connection
      Throws:
      SQLException
    • createSQLXML

      public SQLXML createSQLXML() throws SQLException
      Specified by:
      createSQLXML in interface Connection
      Throws:
      SQLException
    • createStruct

      public Struct createStruct(String typeName, Object[] attributes) throws SQLException
      Specified by:
      createStruct in interface Connection
      Throws:
      SQLException
    • isValid

      public boolean isValid(int timeout) throws SQLException
      Specified by:
      isValid in interface Connection
      Throws:
      SQLException
    • isValidAsyncOracle

      public Flow.Publisher<Boolean> isValidAsyncOracle(int timeout) throws SQLException
      Description copied from interface: OracleConnection
      Returns a Publisher that emits Boolean.TRUE if the connection has not been closed and is still valid. The driver shall submit a query on the connection or use some other mechanism that positively verifies the connection is still valid when this method is called.

      The query submitted by the driver to validate the connection shall be executed in the context of the current transaction.

      Calling any method of this Connection except cancel, abort, isClosed or one defined by Object after this method is called will block until the returned Publisher calls onComplete or onError.

      Specified by:
      isValidAsyncOracle in interface OracleConnection
      Parameters:
      timeout - The time in seconds to wait for the database operation used to validate the connection to complete. If the timeout period expires before the operation completes, the Publsher emits false. A value of 0 indicates a timeout is not applied to the database operation.
      Returns:
      A Publisher that emits true if the connection is valid, false otherwise
      Throws:
      SQLException - if the value supplied for timeout is less than 0
    • isValidAsyncOracle

      public Flow.Publisher<Boolean> isValidAsyncOracle(OracleConnection.ConnectionValidation effort, int timeout) throws SQLException
      Description copied from interface: OracleConnection
      Returns a Publisher that emits Boolean.TRUE if this connection was working properly to the extent specified by effort at the instant during this call it was checked. It does not imply it is still working after the Publisher emits onNext, only it worked at some point during the call. The Publisher emits Boolean.FALSE if the connection is not working properly at the instant during the call when it is checked or if the timeout is exceeded while checking.
      Specified by:
      isValidAsyncOracle in interface OracleConnection
      Parameters:
      effort - How much effort to expend checking the connection.
      timeout - The time in seconds to wait for the validation action to complete. If the timeout expires before the action completes the Publsiher emits false. A value of 0 means no limit.
      Returns:
      A Publisher that emits true if the connection is valid, false otherwise.
      Throws:
      SQLException - if timeout < 0
    • setClientInfo

      public void setClientInfo(String name, String value) throws SQLClientInfoException
      Specified by:
      setClientInfo in interface Connection
      Throws:
      SQLClientInfoException
    • setClientInfo

      public void setClientInfo(Properties properties) throws SQLClientInfoException
      Specified by:
      setClientInfo in interface Connection
      Throws:
      SQLClientInfoException
    • getClientInfo

      public String getClientInfo(String name) throws SQLException
      Specified by:
      getClientInfo in interface Connection
      Throws:
      SQLException
    • getClientInfo

      public Properties getClientInfo() throws SQLException
      Specified by:
      getClientInfo in interface Connection
      Throws:
      SQLException
    • isWrapperFor

      public boolean isWrapperFor(Class<?> iface) throws SQLException
      Return true if this object implements the argument or if the wrapped connection implements the argument. False otherwise.
      Specified by:
      isWrapperFor in interface Wrapper
      Parameters:
      iface - requested interface
      Returns:
      true iff this unwraps with the same argument will succeed
      Throws:
      SQLException - if the argument is not an interface
      Since:
      JDBC 4.0
    • proxyFor

      protected <T> T proxyFor(Object obj, Class<T> iface) throws SQLException
      Throws:
      SQLException
    • unwrap

      public <T> T unwrap(Class<T> iface) throws SQLException
      Return an object that implements the requested interface.
      Specified by:
      unwrap in interface Wrapper
      Parameters:
      iface - requested interface
      Returns:
      this iff this implements the requested interface
      Throws:
      SQLException - if this does not implement the arg or the arg is not an interface
      Since:
      JDBC 4.0
    • abort

      public void abort(Executor executor) throws SQLException
      Specified by:
      abort in interface Connection
      Throws:
      SQLException
    • getNetworkTimeout

      public int getNetworkTimeout() throws SQLException
      Specified by:
      getNetworkTimeout in interface Connection
      Throws:
      SQLException
    • getSchema

      public String getSchema() throws SQLException
      Specified by:
      getSchema in interface Connection
      Throws:
      SQLException
    • setNetworkTimeout

      public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException
      Specified by:
      setNetworkTimeout in interface Connection
      Throws:
      SQLException
    • setSchema

      public void setSchema(String schema) throws SQLException
      Specified by:
      setSchema in interface Connection
      Throws:
      SQLException
    • registerDatabaseChangeNotification

      public DatabaseChangeRegistration registerDatabaseChangeNotification(Properties options) throws SQLException
      Description copied from interface: OracleConnection
      / Creates a new database change registration.

      This method creates a new database change registration in the database server with the given options. It also opens a listening socket which will be used by the database to send notifications. Note that if there already is a listening socket (created by a different registration), then it will be used by this registration as well.

      This method returns a DatabaseChangeRegistration object that can then be used to associate a statement with this registration.

      The registration will continue to live after this connection is closed. You need to explicitly unregister it to destroy it in the server and release the resources in the driver.

      This method uses one roundtrip.

      It is recommended to use OracleConnection.DCN_CLIENT_INIT_CONNECTION option when connecting to an Oracle Database running in the cloud to prevent connection failures when it's the server that initiates the connection to the client. Please note that grouping of notifications are not supported with OracleConnection.DCN_CLIENT_INIT_CONNECTION.

      Specified by:
      registerDatabaseChangeNotification in interface OracleConnection
      Parameters:
      options - Possible options are ([] means default):
      • OracleConnection.NTF_QOS_RELIABLE: "true"/["false"]. Set this option to "true" to make the notifications persistent which comes at a performance cost.
      • OracleConnection.NTF_QOS_PURGE_ON_NTFN: "true"/["false"]. Set this option to "true" and the registration will be expunged on the first notification event.
      • OracleConnection.NTF_TIMEOUT: value in seconds "60"/["0"]. Specifies the time in seconds after which the registration is automatically expunged by the database. The default is "0": the registration lives until explicitly deregistered.
      • OracleConnection.NTF_LOCAL_TCP_PORT: "1234"/[NTF_DEFAULT_TCP_PORT]. This option lets you specify what TCP port the driver should use for the listening socket. If you don't specify a port, the driver will use NTF_DEFAULT_TCP_PORT and if it's already used, it will increment it by one until it finds one that is available.
      • OracleConnection.NTF_LOCAL_HOST: example "212.121.134.12". Use this option to manually specify the IP address of the machine that will receive the notifications from the server. Use this option with caution: only specify the IP address of the local machine when the driver is unable to find it out on its own (it uses InetAddress.getLocalHost() ). For example if the machine on which runs the JDBC driver is a VPN client, you may have to specify the IP address of the VPN client which the driver cannot find out on its own. This option should not be used to attempt to have a different remote host receive the notifications from the server.
      • OracleConnection.DCN_NOTIFY_ROWIDS: "true"/["false"]. Use this option to have the server send the ROWIDs of the row that have changed within the notification event. By default this feature is turned off.
      • OracleConnection.DCN_IGNORE_INSERTOP: "true"/["false"]. Use this option to tell the server to ignore INSERT operations.
      • OracleConnection.DCN_IGNORE_UPDATEOP: "true"/["false"]. Use this options to tell the server to ignore UPDATE operations.
      • OracleConnection.DCN_IGNORE_DELETEOP: "true"/["false"]. Use this options to tell the server to ignore DELETE operations.
      • OracleConnection.DCN_NOTIFY_CHANGELAG: "30"/["0"]. This is an int value (specified as a String), that can be used to specify the number of transactions by which the client is willing to lag behind. This option can be used by the client as a throttling mechanism for database change events. When this option is chosen, ROWID level granularity of information will not be available in the events, even if the DCN_NOTIFY_ROWIDS option was set to "true".
      • OracleConnection.DCN_QUERY_CHANGE_NOTIFICATION: "true"/["false"]. Use this option to activate query change notification instead of object change notification. Note that this option is only available in the database server starting in 11.1.
      • OracleConnection.DCN_BEST_EFFORT: "true"/["false"]. If a query has been successfully registered, by default there will be no FALSE positives. If this option is selected during registrations, then registrations on complex queries may still be allowed but notifications may have some FALSE positives, because full pruning may not be performed if determined to be too expensive. In the worst case notifications will be generated in response to any DML/DDL changes to underlying objects. Note that this option is ignored if the DCN_QUERY_CHANGE_NOTIFICATION isn't turned on. As DCN_QUERY_CHANGE_NOTIFICATION, this option is only available in the database server starting in 11.1.
      • OracleConnection.NTF_GROUPING_CLASS: OracleConnection.NTF_GROUPING_CLASS_TIME/[OracleConnection.NTF_GROUPING_CLASS_NONE]. Notification Grouping Class, the criterion or dimension for grouping. The only supported class is OracleConnection.NTF_GROUPING_CLASS_TIME meaning grouping by time, that is, the user specifies a time value and a single notification gets published at the end of that time. To use grouping at least this option must be specified to a value other than the default OracleConnection.NTF_GROUPING_CLASS_NONE, which is no grouping.
      • OracleConnection.NTF_GROUPING_VALUE: "1200/["600"]. Notification Grouping Value, the value of the grouping class. The value must be an integer number. For the TIME grouping class, this value represents a number of seconds, meaning the time after which grouped notifications are sent. If not specified, it defaults to 600 sec.
      • OracleConnection.NTF_GROUPING_TYPE: OracleConnection.NTF_GROUPING_TYPE_LAST/[OracleConnection.NTF_GROUPING_TYPE_SUMMARY]. Notification Grouping Type, the format of grouping notification. It can either contain the summary of all events (default) or the last event in the group.
      • OracleConnection.NTF_GROUPING_START_TIME: When to start grouping? Notification grouping can start from a user-specified time that should a valid timestamp with time zone, that is an instance of oracle.sql.TIMESTAMPTZ. If this option is not specified when using grouping, it defaults to current system time. For example if prop was the option properties, and conn the connection object, you would call: prop.put(OracleConnection.NTF_GROUPING_START_TIME,new TIMESTAMPTZ(conn,"2007-06-21 10:10:00.0"));.
      • OracleConnection.NTF_GROUPING_REPEAT_TIME: "100"/[NTF_GROUPING_REPEAT_FOREVER]. How many times do grouping? Grouping notifications will be sent as many times as specified by the notification grouping repeat count and after that revert to regular notifications. If not specified, it will default to: NTF_GROUPING_REPEAT_FOREVER - keep sending grouping notifications forever.
      • OracleConnection.DCN_CLIENT_INIT_CONNECTION: "true"/["false"]. This can be configured to initiate a connection from the client instead of opening a listener socket for receiving the database change notifications. Set the value to 'true' for using the Client initiated DCN connection. By default the value is 'false' and opens a listening socket for receiving notifications from the server.
      • OracleConnection.DCN_USE_HOST_CONNECTION_ADDR_INFO: ["true"]/"false". Set the value to 'false' to use the address info returned by the server for establishing the client initiated DCN Connection. Default value is 'true' and the database hostname and port information present in this database connection's connection string is used for establishing the client initiated DCN connection.
      • OracleConnection.DCN_CLIENT_INIT_REGID: example "212" The default value is "0". This option can only be used if the flag OracleConnection.DCN_CLIENT_INIT_CONNECTION is set to true. This is used to create a client connection to consume messages from an existing reliable CQN regid (re-registration). It cannot be used to create a new CQN registration. The default value is "0" which denotes creating a new registration. Negative and invalid values are ignored.
      Returns:
      DatabaseChangeRegistration
      Throws:
      SQLException
    • getDatabaseChangeRegistration

      public DatabaseChangeRegistration getDatabaseChangeRegistration(int regid) throws SQLException
      Description copied from interface: OracleConnection
      Maps an existing registration identified by its ID 'regid' with a new DatabaseChangeRegistration object.

      This method can be used if you create a registration through PLSQL and you want to associate a JDBC statement with it.

      This method doesn't create a new listener on the JDBC driver side and DatabaseChangeEvent won't be created. Thus you won't be allowed to attach any listeners to this registration.

      Note that this method doesn't generate any roundtrip to the database.

      Specified by:
      getDatabaseChangeRegistration in interface OracleConnection
      Parameters:
      regid - The id of the registration
      Returns:
      DatabaseChangeRegistration A new instance that can be used to associate a statement with this registration
      Throws:
      SQLException
    • unregisterDatabaseChangeNotification

      public void unregisterDatabaseChangeNotification(DatabaseChangeRegistration registration) throws SQLException
      Description copied from interface: OracleConnection
      Deletes a given database change registration. The registration will be destroyed in the server and in the driver (the network listener will be closed if it's not used anymore).

      This method interrupts the notification thread and removes all listeners attached to this registration before closing it.

      Specified by:
      unregisterDatabaseChangeNotification in interface OracleConnection
      Throws:
      SQLException
      See Also:
    • unregisterDatabaseChangeNotification

      public void unregisterDatabaseChangeNotification(int registrationId, String host, int tcpport) throws SQLException
      Description copied from interface: OracleConnection
      Deletes a given database change registration in the server. This method doesn't free any resources in the drivers.

      This method will throw an "ORA-24950: unregister failed, registration not found" if you don't provide the correct TCP port which can be extracted from the "callback" value in the "USER_CHANGE_NOTIFICATION_REGS" table.

      Specified by:
      unregisterDatabaseChangeNotification in interface OracleConnection
      Throws:
      SQLException
      See Also:
    • unregisterDatabaseChangeNotification

      public void unregisterDatabaseChangeNotification(int registrationId) throws SQLException
      Description copied from interface: OracleConnection
      Deletes a given database change registration in the server. This method doesn't free any resources in the drivers.
      Specified by:
      unregisterDatabaseChangeNotification in interface OracleConnection
      Throws:
      SQLException
      See Also:
    • unregisterDatabaseChangeNotification

      public void unregisterDatabaseChangeNotification(long registrationId, String callback) throws SQLException
      Description copied from interface: OracleConnection
      Deletes a given database change registration in the server. This method doesn't free any resources in the drivers and should only be used to clean up a registration in the database that wasn't properly closed (in the case of JVM crash for example).

      This flavor of unregisterDatabaseChangeNotification can be used to process the result of the following query: select regid,callback from USER_CHANGE_NOTIFICATION_REGS;.

      For example to remove all registrations from the database you would execute the following code:

          Statement stmt= conn.createStatement();
          ResultSet rs = stmt.executeQuery("select regid,callback from USER_CHANGE_NOTIFICATION_REGS");
          while(rs.next())
          {
            long regid = rs.getLong(1);
            String callback = rs.getString(2);
            ((OracleConnection)conn).unregisterDatabaseChangeNotification(regid,callback);
          }
          rs.close();
          stmt.close();
          

      Specified by:
      unregisterDatabaseChangeNotification in interface OracleConnection
      Throws:
      SQLException
      See Also:
    • registerAQNotification

      public AQNotificationRegistration[] registerAQNotification(String[] name, Properties[] options, Properties globaloptions) throws SQLException
      Description copied from interface: OracleConnection
      Registers your interest into being notified when a message is enqueued in a particular queue (or array of queues).

      This method creates an array of new AQ registrations in the database server with the given options. It also opens a listening socket which will be used by the database to send notifications. Note that mutiple registrations can share the same listening socket.

      Each registration will continue to live after this connection is closed. You need to explicitly unregister it to destroy it in the server and release the resources in the driver.

      This method uses one roundtrip.

      Specified by:
      registerAQNotification in interface OracleConnection
      Parameters:
      name - contains an array of queue names ("SCOTT.MY_QUEUE") for single consumer queues or queue names with the consumer name ("SCOTT.MY_QUEUE:RECEIVER") for multiple consumer queues.
      options - Possible options are ([] means default):
      • OracleConnection.NTF_QOS_RELIABLE: "true"/["false"]. Set this option to "true" to make the notifications persistent which comes at a performance cost.
      • OracleConnection.NTF_QOS_PURGE_ON_NTFN: "true"/["false"]. Set this option to "true" and the registration will be expunged on the first notification event.
      • OracleConnection.NTF_TIMEOUT: value in seconds "60"/["0"]. Specifies the time in seconds after which the registration is automatically expunged by the database. The default is "0": the registration lives until explicitly deregistered.
      • OracleConnection.NTF_AQ_PAYLOAD: "true"/["false"]. Sets this to "true" to make the server send the payload within the notification. Note that this feature works only with "RAW" payloads.
      • OracleConnection.NTF_GROUPING_CLASS: OracleConnection.NTF_GROUPING_CLASS_TIME/[OracleConnection.NTF_GROUPING_CLASS_NONE]. Notification Grouping Class, the criterion or dimension for grouping. As of 11.2 the only supported class is OracleConnection.NTF_GROUPING_CLASS_TIME meaning grouping by time, that is, the user specifies a time value and a single notification gets published at the end of that time. To use grouping at least this option must be specified to a value other than the default OracleConnection.NTF_GROUPING_CLASS_NONE, which is no grouping.
      • OracleConnection.NTF_GROUPING_VALUE: "1200/["600"]. Notification Grouping Value, the value of the grouping class. The value must be an integer number. For the TIME grouping class, this value represents a number of seconds, meaning the time after which grouped notifications are sent. If not specified, it defaults to 600 sec.
      • OracleConnection.NTF_GROUPING_TYPE: OracleConnection.NTF_GROUPING_TYPE_LAST/[OracleConnection.NTF_GROUPING_TYPE_SUMMARY]. Notification Grouping Type, the format of grouping notification. It can either contain the summary of all events (default) or the last event in the group.
      • OracleConnection.NTF_GROUPING_START_TIME: When to start grouping? Notification grouping can start from a user-specified time that should a valid timestamp with time zone, that is an instance of oracle.sql.TIMESTAMPTZ. If this option is not specified when using grouping, it defaults to current system time. For example if prop was the option properties, and conn the connection object, you would call: prop.put(OracleConnection.NTF_GROUPING_START_TIME,new TIMESTAMPTZ(conn,"2007-06-21 10:10:00.0"));.
      • OracleConnection.NTF_GROUPING_REPEAT_TIME: "100/[NTF_GROUPING_REPEAT_FOREVER]". How many times do grouping? Grouping notifications will be sent as many times as specified by the notification grouping repeat count and after that revert to regular notifications. If not specified, it will default to: NTF_GROUPING_REPEAT_FOREVER - keep sending grouping notifications forever.
      globaloptions - Possible options are ([] means default):
      • OracleConnection.NTF_LOCAL_TCP_PORT: "1234"/[NTF_DEFAULT_TCP_PORT]. This option lets you specify what TCP port the driver should use for the listening socket. If you don't specify a port, the driver will use NTF_DEFAULT_TCP_PORT and if it's already used, it will increment it by one until it finds one that is available.
      • OracleConnection.NTF_LOCAL_HOST: example "212.121.134.12". Use this option to manually specify the IP address of the machine that will receive the notifications from the server. Use this option with caution: only specify the IP address of the local machine when the driver is unable to find it out on its own (it uses InetAddress.getLocalHost() ). For example if the machine on which runs the JDBC driver is a VPN client, you may have to specify the IP address of the VPN client which the driver cannot find out on its own. This option should not be used to attempt to have a different remote host receive the notifications from the server.
      Returns:
      AQNotificationRegistration[]
      Throws:
      SQLException
    • unregisterAQNotification

      public void unregisterAQNotification(AQNotificationRegistration registration) throws SQLException
      Description copied from interface: OracleConnection
      Deletes a given AQ registration. The registration will be destroyed in the server and in the driver (the network listener will be closed if it's not used anymore).

      Specified by:
      unregisterAQNotification in interface OracleConnection
      Throws:
      SQLException
    • dequeue

      public AQMessage dequeue(String queueName, AQDequeueOptions opt, byte[] tdo) throws SQLException
      Description copied from interface: OracleConnection
      Dequeues an AQ message from the queue specified by its name.

      Specified by:
      dequeue in interface OracleConnection
      Parameters:
      queueName - name of the queue from which to dequeue.
      opt - dequeue options
      tdo - the Type Descriptor Object OID of the type of the queue.
      Returns:
      the AQMessage dequeued.
      Throws:
      SQLException
    • dequeue

      public AQMessage dequeue(String queueName, AQDequeueOptions opt, byte[] tdo, int version) throws SQLException
      Description copied from interface: OracleConnection
      Dequeues an AQ message from the queue specified by its name.

      Specified by:
      dequeue in interface OracleConnection
      Parameters:
      queueName - name of the queue from which to dequeue.
      opt - dequeue options
      tdo - the Type Descriptor Object OID of the type of the queue.
      version - the version of the type Descriptor
      Returns:
      the AQMessage dequeued.
      Throws:
      SQLException
    • dequeue

      public AQMessage dequeue(String queueName, AQDequeueOptions opt, String typeName) throws SQLException
      Description copied from interface: OracleConnection
      Dequeues an AQ message from the queue specified by its name.

      Specified by:
      dequeue in interface OracleConnection
      Parameters:
      queueName - name of the queue from which to dequeue.
      opt - dequeue options.
      typeName - the name of the type of the queue. For example, it can be "RAW", "SYS.ANYDATA" or "SCOTT.MY_OBJECT_TYPE".
      Returns:
      the AQMessage dequeued.
      Throws:
      SQLException
    • dequeue

      public AQMessage[] dequeue(String queueName, AQDequeueOptions opt, String typeName, int deqsize) throws SQLException
      Description copied from interface: OracleConnection
      Dequeues an array of AQ messages from the queue specified by its name.

      Specified by:
      dequeue in interface OracleConnection
      Parameters:
      queueName - name of the queue from which to dequeue.
      opt - dequeue options.
      typeName - the name of the type of the queue. For example, it can be "RAW", "SYS.ANYDATA" or "SCOTT.MY_OBJECT_TYPE".
      deqsize - dequeue number of messages
      Returns:
      the array of AQMessage dequeued.
      Throws:
      SQLException
    • dequeue

      public AQMessage[] dequeue(String queueName, AQDequeueOptions opt, byte[] tdo, int version, int deqsize) throws SQLException
      Description copied from interface: OracleConnection
      Dequeues an array of AQ messages from the queue specified by its name.

      Specified by:
      dequeue in interface OracleConnection
      Parameters:
      queueName - name of the queue from which to dequeue.
      opt - dequeue options
      tdo - the Type Descriptor Object OID of the type of the queue.
      version - the version of the type Descriptor
      deqsize - dequeue number of messages
      Returns:
      the array of AQMessage dequeued.
      Throws:
      SQLException
    • enqueue

      public void enqueue(String queueName, AQEnqueueOptions opt, AQMessage mesg) throws SQLException
      Description copied from interface: OracleConnection
      Enqueues the given AQ message to the queue specified by its name.

      Specified by:
      enqueue in interface OracleConnection
      Parameters:
      queueName - name of the queue where to enqueue.
      opt - enqueue options.
      mesg - the AQ message to enqueue.
      Throws:
      SQLException
    • enqueue

      public int enqueue(String queueName, AQEnqueueOptions opt, AQMessage[] mesgs) throws SQLException
      Description copied from interface: OracleConnection
      Enqueues the given array of AQ messages to the queue specified by its name.

      Specified by:
      enqueue in interface OracleConnection
      Parameters:
      queueName - name of the queue where to enqueue.
      opt - enqueue options.
      mesgs - the array of AQ messages to enqueue.
      Returns:
      actual number of messages enqueued.
      Throws:
      SQLException
    • commit

      public void commit(EnumSet<OracleConnection.CommitOption> flags) throws SQLException
      Description copied from interface: OracleConnection
      Commits the transaction with the given options.
      Specified by:
      commit in interface OracleConnection
      Parameters:
      flags - commit options
      Throws:
      SQLException
    • cancel

      public void cancel() throws SQLException
      Description copied from interface: OracleConnection
      Performs an immediate (asynchronous) termination of any currently executing operation on this connection. It is normally used to stop a long-running JDBC call being processed on the server. It can be called by a user thread in multithreaded applications.

      For example, in the context of AQ, it can be used to cancel a 'dequeue' call that is waiting for a new message to be enqueued.

      Specified by:
      cancel in interface OracleConnection
      Throws:
      SQLException - if the cancel operation fails
    • abort

      public void abort() throws SQLException
      Description copied from interface: OracleConnection
      Calling abort() on an open connection does the following: marks the connection as closed, closes any sockets or other primitive connections to the database, and insures that any thread that is currently accessing the connection will either progress to completion of the JDBC call or throw an exception. Calling abort() on a closed connection does nothing. It is critical to note that abort() does not hang. It does not block because of pending database operations. In particular it is not synchronized. Since typically abort() will be called when it appears that the connection is dead, any attempt to communicate with the database via blocking IO is likely to hang and is not attempted. As such, abort leaves the connection in a unknown state. Although abort marks the connection as closed, it does not release any local resources as it cannot do so safely; it is not synchronized. It is recommended to call Connection.close() after calling abort. Connection.close() will recognize that connection has been aborted and will clean up local resources, even though the connection has already been marked as closed. Since Connection.close is synchronized it may hang briefly while any thread that has a lock on the connection completes and releases the lock. Recall that after calling abort any thread that is using the connection will be able to proceed to completion or will throw an exception. abort is very different from OracleConnection.cancel. cancel gracefully stops the execution of any SQL operation. It is a synchronous operation that communicates with the database. It leaves the connection and the statements in a well-known and usable state. In contrast abort tears down the client side network connection to the database, leaving the server to clean up as best it can whenever it discovers that the connection has been broken. abort does not clean up client side resources and leaves the connection and associated statements in an unknown and unusable state. The only valid thing to do with a connection after calling abort is to call close and then discard the connection object. After calling cancel the app can continue to use the connection and statements. If there is a security manager, its checkPermission method is called with an oracle.jdbc.OracleSQLPermission("callAbort") permission to see if the caller has permission to abort a connection. If the caller does not have permission, a SecurityException is thrown. See the ojdbc.policy file in the demo directory for help in granting the appropriate permissions when using a SecurityManager with Oracle JDBC. The best use of the abort() call is in the layer that manages connections such as the connection pool. Stale or invalid connections may often appear to hang when an application thread is blocked on a network call. Connection pools may implement a cleaner thread, that simply looks for such stale connections and issues the abort() call. This results in releasing all client handles and resources without expecting an acknowledgement from the database backend. There is no need for user code to call abort when using an Oracle connection pool such as the Implicit Connection Cache or the Universal Connection Pool as these connection pools will call abort when necessary.
      Specified by:
      abort in interface OracleConnection
      Throws:
      SQLException - -- Io Exception: Socket closed - ORA-17002 TNS:not connected - ORA-12153
    • getAllTypeDescriptorsInCurrentSchema

      public TypeDescriptor[] getAllTypeDescriptorsInCurrentSchema() throws SQLException
      Description copied from interface: OracleConnection
      Obtain all the type descriptors associated with object types or array in the schema of this connection. Note that synonyms are not suportted. Requires an internal PL/SQL package that is present only in database 11 and above.
      Specified by:
      getAllTypeDescriptorsInCurrentSchema in interface OracleConnection
      Returns:
      An array of the appropriate descriptors for Arrays or Structs depending on the type names found.
      Throws:
      SQLException - If an error occurs.
    • getTypeDescriptorsFromListInCurrentSchema

      public TypeDescriptor[] getTypeDescriptorsFromListInCurrentSchema(String[] typeNames) throws SQLException
      Description copied from interface: OracleConnection
      Obtain the type descriptors associated with object types or array in a schema from an array of type names. Note that synonyms are not suportted. Requires an internal PL/SQL package that is present only in database 11 and above.
      Specified by:
      getTypeDescriptorsFromListInCurrentSchema in interface OracleConnection
      Parameters:
      typeNames - An array of Strings which are type names. Use upper case unless the type names are mixed case names.
      Returns:
      An array of the appropriate descriptors for Arrays or Structs depending on the type names found.
      Throws:
      SQLException - if the specified type does not exist, or if an error occurred.
    • getTypeDescriptorsFromList

      public TypeDescriptor[] getTypeDescriptorsFromList(String[][] schemaAndTypeNamePairs) throws SQLException
      Description copied from interface: OracleConnection
      Obtain the type descriptors associated with object types or arrays from an array of scheama and type names. Note that synonyms are not suportted. Requires an internal PL/SQL package that is present only in database 11 and above.
      Specified by:
      getTypeDescriptorsFromList in interface OracleConnection
      Parameters:
      schemaAndTypeNamePairs - An array of arrays of Strings which are pairs of schema and type names.
      Returns:
      An array of the appropriate descriptors for Arrays or Structs depending on the type names found.
      Throws:
      SQLException - if any of the specified types does not exist, or if an error occurs.
    • getDataIntegrityAlgorithmName

      public String getDataIntegrityAlgorithmName() throws SQLException
      Description copied from interface: OracleConnection
      Returns the name of the algorithm that is used for data integrity checking by the thin driver on the network. Returns "" when there is no data integrity checking.
      Specified by:
      getDataIntegrityAlgorithmName in interface OracleConnection
      Throws:
      SQLException
    • getEncryptionAlgorithmName

      public String getEncryptionAlgorithmName() throws SQLException
      Description copied from interface: OracleConnection
      Returns the name of the algorithm that is used for data encryption by the thin driver on the network. Returns "" when the data isn't encrypted on the network.
      Specified by:
      getEncryptionAlgorithmName in interface OracleConnection
      Throws:
      SQLException
    • getSecurityInformation

      public SecurityInformation getSecurityInformation() throws SQLException
      Description copied from interface: OracleConnection
      Returns an instance of SecurityInformation which has details about the security of the underlying network connection. This feature is supported only by the Thin driver. Throws UnsupportedOperationException if this feature is not supported by the underlying driver implementation.
      Specified by:
      getSecurityInformation in interface OracleConnection
      Throws:
      SQLException
      See Also:
    • getAuthenticationAdaptorName

      public String getAuthenticationAdaptorName() throws SQLException
      Description copied from interface: OracleConnection
      Returns the name of the adaptor that is used for authentication by the thin driver. Returns "" for basic user/password authenticatin.
      Specified by:
      getAuthenticationAdaptorName in interface OracleConnection
      Throws:
      SQLException
    • isUsable

      public boolean isUsable()
      Description copied from interface: OracleConnection
      Identifies whether this connection is still usable for JDBC operations.
      Specified by:
      isUsable in interface OracleConnection
      Returns:
      true if this connection is usable; false otherwise.
    • getConnectionDuringExceptionHandling

      protected oracle.jdbc.internal.OracleConnection getConnectionDuringExceptionHandling()
    • setDefaultTimeZone

      public void setDefaultTimeZone(TimeZone tz) throws SQLException
      The TimeZone to be used while creating java.sql.Date, java.sql.Time & java.sql.Timestamp.
      Specified by:
      setDefaultTimeZone in interface OracleConnection
      Parameters:
      tz - Default TimeZone to be used for all Date, Time and Timestamp conversions.
      Throws:
      SQLException - if there is an issue while setting the TimeZone
    • getDefaultTimeZone

      public TimeZone getDefaultTimeZone() throws SQLException
      Returns the TimeZone set through setDefaultTimeZone.
      Specified by:
      getDefaultTimeZone in interface OracleConnection
      Returns:
      TimeZone set through setDefaultTimeZone. Returns null if setDefaultTimeZone is not invoked with proper values.
      Throws:
      SQLException - If there is any issue while retrieving the TimeZone
    • setApplicationContext

      public void setApplicationContext(String nameSpace, String attribute, String value) throws SQLException
      Description copied from interface: OracleConnection
      Sets a attribute/value pair in a particular namespace in the application context on the server. This application context is stored in the user session. Note that you can call this method multiple times to set more than one attribute/value pair in the application context. Please note that the only supported namespace is CLIENTCONTEXT. More may be added in a future release. This method does not require any additional roundtrip.
      Specified by:
      setApplicationContext in interface OracleConnection
      Parameters:
      nameSpace - The namespace where this attribute/value pairs will be stored. The only supported namespace is CLIENTCONTEXT. The value cannot be null nor empty.
      attribute - The attribute whose value needs to be set. If the value is null then a NullPointerException is thrown. If the value is an empty string (""), then the namespace will be cleared and the value is ignored.
      value - The value of the attribute. If the value is null then a NullPointerException is thrown. If the value is an empty string (""), then the attribute will be cleared.
      Throws:
      SQLException - If an error occurs
      See Also:
    • clearAllApplicationContext

      public void clearAllApplicationContext(String nameSpace) throws SQLException
      Description copied from interface: OracleConnection
      Clear all the attribute/value information in a namespace.
      Specified by:
      clearAllApplicationContext in interface OracleConnection
      Parameters:
      nameSpace - The namespace which will be cleared
      Throws:
      SQLException
      See Also:
    • addLogicalTransactionIdEventListener

      public void addLogicalTransactionIdEventListener(LogicalTransactionIdEventListener listener) throws SQLException
      Description copied from interface: OracleConnection
      Registers a listener to Logical Transaction Id events. The caller is responsible for writing an implementation of the LogicalTransactionIdEventListener interface. A listener instance must then be registered using this method.
      Specified by:
      addLogicalTransactionIdEventListener in interface OracleConnection
      Throws:
      SQLException
    • addLogicalTransactionIdEventListener

      public void addLogicalTransactionIdEventListener(LogicalTransactionIdEventListener listener, Executor executor) throws SQLException
      Description copied from interface: OracleConnection
      This flavor of addLogicalTransactionIdEventListener can be used to register a listener with an executor. When a Logical Transaction Id event is triggered the driver will use this executor to call the listener's onLogicalTransactionIdEvent method. Typically you would call this method if you want onLogicalTransactionIdEvent to be executed in a separate thread.
      Specified by:
      addLogicalTransactionIdEventListener in interface OracleConnection
      Throws:
      SQLException
    • removeLogicalTransactionIdEventListener

      public void removeLogicalTransactionIdEventListener(LogicalTransactionIdEventListener listener) throws SQLException
      Description copied from interface: OracleConnection
      Deregisters the Logical Transaction Id event listener.
      Specified by:
      removeLogicalTransactionIdEventListener in interface OracleConnection
      Throws:
      SQLException
    • getLogicalTransactionId

      public LogicalTransactionId getLogicalTransactionId() throws SQLException
      Description copied from interface: OracleConnection
      Gets the current Logical Transaction Id which are sent by the server in a piggy back message and hence this method call doesn't make a roundtrip.
      Specified by:
      getLogicalTransactionId in interface OracleConnection
      Throws:
      SQLException
    • getProviderAllowedProperties

      public Set<String> getProviderAllowedProperties()
      Description copied from interface: OracleConnection
      getProviderAllowedProperties Get the list of properties that are whitelisted for a remote provider.
      Specified by:
      getProviderAllowedProperties in interface OracleConnection
      Returns:
      Set of whitelisted properties.
    • needToPurgeStatementCache

      public boolean needToPurgeStatementCache() throws SQLException
      Connection Pool manager will invoke this method to check if the server session is the same as the old one and if the Statement cache should be purged.
      Specified by:
      needToPurgeStatementCache in interface OracleConnection
      Returns:
      true - to purge the statement cache false ? It is ok to use the same statement cache
      Throws:
      SQLException
      Since:
      12.1
      See Also:
    • attachServerConnection

      public boolean attachServerConnection() throws SQLException
      Notifies the server that the DRCP enabled connection will be in use so that the server can associate a server process to the connection. In case when tagging is used the server will attempt to pair a server process with the same tag. needToPurgeStatementCache() returns true if the underlying session has changed and if the local statement cache should be purged.

      Specified by:
      attachServerConnection in interface OracleConnection
      Returns:
      true - If the tag matched. In cases without tagging it returns true by default
      Throws:
      SQLException - If there is an exception while obtaining server process
      Since:
      12.1
      See Also:
    • detachServerConnection

      public void detachServerConnection(String tag) throws SQLException
      Notify the server that this connection will not be used. The server can choose to reuse the server process if needed. The connection can be released with a tag which ensures upon that the next attachServerConnection() on this connection the server will attempt to pair this connection with the server process of the same tag.
      Specified by:
      detachServerConnection in interface OracleConnection
      Parameters:
      tag - A string value that the connection will be associated in the server. null is a valid argument when no tagging required.
      Throws:
      SQLException - If there was an exception while releasing
      Since:
      12.1
      See Also:
    • isDRCPEnabled

      public boolean isDRCPEnabled() throws SQLException
      Returns if the connection is participating in DRCP.
      Specified by:
      isDRCPEnabled in interface OracleConnection
      Returns:
      true if DRCP is enabled
      Throws:
      SQLException - if there is an error while processing the request
      See Also:
    • isDRCPMultitagEnabled

      public boolean isDRCPMultitagEnabled() throws SQLException
      Returns true if multiple tags are allowed with DRCP Connection.
      Specified by:
      isDRCPMultitagEnabled in interface OracleConnection
      Returns:
      true if DRCP multitagging is enabled.
      Throws:
      SQLException
      See Also:
    • getDRCPReturnTag

      public String getDRCPReturnTag() throws SQLException
      Returns the tag associated with this DRCP pooled server. If multiple tags are used, they will be separated by a semicolon. If tagging is not enabled or not available or if this connection is currently not attached to any DRCP pooled server then this method returns null.
      Specified by:
      getDRCPReturnTag in interface OracleConnection
      Throws:
      SQLException
      See Also:
    • getDRCPPLSQLCallbackName

      public String getDRCPPLSQLCallbackName() throws SQLException
      Returns the PL/SQL Fix-up callback name if configured, otherwise returns Null
      Specified by:
      getDRCPPLSQLCallbackName in interface OracleConnection
      Throws:
      SQLException
      See Also:
    • beginRequest

      public void beginRequest() throws SQLException
      Description copied from interface: OracleConnection
      Declares that a request to the server is starting on this connection. When called after another beginRequest() but before an endRequest(), this call is a no-op and does not throw any exception. Therefore, application is allowed to call beginRequest after a connection pool checkout, which implicitly calls beginRequest.
      Specified by:
      beginRequest in interface Connection
      Specified by:
      beginRequest in interface OracleConnection
      Throws:
      SQLException - When called with an open transaction on this connection.
    • endRequest

      public void endRequest() throws SQLException
      Description copied from interface: OracleConnection
      Declares that the request that was in progress on this connection has completed. Existing connection labels and state on the connection are not affected by this call. Calling endRequest() multiple times without beginRequest() in-between is allowed.
      Specified by:
      endRequest in interface Connection
      Specified by:
      endRequest in interface OracleConnection
      Throws:
      SQLException - When called with an open transaction on this connection.
    • setShardingKey

      public void setShardingKey(OracleShardingKey key, OracleShardingKey superKey) throws SQLException
      Description copied from interface: OracleConnection
      Sets the sharding key and the super sharding key on this connection.
      Specified by:
      setShardingKey in interface OracleConnection
      Parameters:
      key - Sharding key to be set on this connection
      superKey - Super Sharding key to be set on this connection
      Throws:
      SQLException - if there is an exception while setting the sharding keys on this connection.
    • setShardingKeyIfValid

      public boolean setShardingKeyIfValid(OracleShardingKey key, OracleShardingKey superKey, int timeout) throws SQLException
      Description copied from interface: OracleConnection
      Checks the validity of the connection and also checks if the sharding keys passed to this method are valid for the connection. If the sharding keys are valid, it will be set on the connection.
      Specified by:
      setShardingKeyIfValid in interface OracleConnection
      Parameters:
      key - Sharding key to be validated and set against this connection. Not null.
      superKey - Super Sharding key to be validated and set against this connection. May be null.
      timeout - Time in seconds before which the validation process is expected to be complete, else the validation process is aborted. The value of the timeout must be set to zero to disable the timeout during the validation.
      Returns:
      true if the connection is valid and the shard keys are valid to be set on this connection.
      Throws:
      SQLException - if there is any exception while performing this validation or if timeout value is less than 0.
    • setShardingKeyIfValidAsyncOracle

      public Flow.Publisher<Boolean> setShardingKeyIfValidAsyncOracle(ShardingKey key, ShardingKey superKey, int timeout) throws SQLException
      Description copied from interface: OracleConnection
      Sets and validates the sharding keys for this connection.
      Specified by:
      setShardingKeyIfValidAsyncOracle in interface OracleConnection
      Parameters:
      key - the sharding key to be validated against this connection. Not null.
      superKey - the super sharding key to be validated against this connection. The super sharding key may be null.
      timeout - time in seconds before which the validation process is expected to be completed, otherwise the validation process is aborted. A value of 0 indicates the validation process will not time out.
      Returns:
      A Publisher that emits Boolean.TRUE if the connection is valid and the sharding keys are valid and set on this connection; Boolean.FALSE if the sharding keys are not valid or the timeout period expires before the operation completes. The Publisher emits onError with a SQLException if an error occurs while performing this validation; this method is called on a closed connection; or the timeout value is negative.
      Throws:
      SQLException
      See Also:
    • setShardingKeyIfValid

      public boolean setShardingKeyIfValid(OracleShardingKey shardingKey, int timeout) throws SQLException
      Description copied from interface: OracleConnection
      Checks the validity of the connection and also checks if the sharding key passed to this method is valid for the connection. If the sharding key is valid, it will be set on the connection.
      Specified by:
      setShardingKeyIfValid in interface OracleConnection
      Parameters:
      shardingKey - Sharding key to be validated and set against this connection. Not null.
      timeout - Time in seconds before which the validation process is expected to be complete, else the validation process is aborted. The value of the timeout must be set to zero to disable the timeout during the validation.
      Returns:
      true if the connection is valid and the shard keys are valid to be set on this connection.
      Throws:
      SQLException - if there is any exception while performing this validation or if timeout value is less than 0.
    • setShardingKey

      public void setShardingKey(OracleShardingKey shardingKey) throws SQLException
      Description copied from interface: OracleConnection
      Sets the sharding key on this connection.
      Specified by:
      setShardingKey in interface OracleConnection
      Parameters:
      shardingKey - Sharding key to be set on this connection
      Throws:
      SQLException - if there is an exception while setting the sharding keys on this connection.
    • setShardingKey

      public void setShardingKey(ShardingKey key, ShardingKey superKey) throws SQLException
      Specified by:
      setShardingKey in interface Connection
      Throws:
      SQLException
    • setShardingKeyIfValid

      public boolean setShardingKeyIfValid(ShardingKey key, ShardingKey superKey, int timeout) throws SQLException
      Specified by:
      setShardingKeyIfValid in interface Connection
      Throws:
      SQLException
    • setShardingKey

      public void setShardingKey(ShardingKey key) throws SQLException
      Specified by:
      setShardingKey in interface Connection
      Throws:
      SQLException
    • setShardingKeyIfValid

      public boolean setShardingKeyIfValid(ShardingKey key, int timeout) throws SQLException
      Specified by:
      setShardingKeyIfValid in interface Connection
      Throws:
      SQLException
    • getDRCPState

      public OracleConnection.DRCPState getDRCPState() throws SQLException
      Description copied from interface: OracleConnection
      Returns an enum indicating if the connection is attached to a DRCP server process.
      Specified by:
      getDRCPState in interface OracleConnection
      Returns:
      OracleConnection.DRCPState.DETACHED if the connection is detached. OracleConnection.DRCPState.ATTACHED_IMPLICIT or OracleConnection.DRCPState.ATTACHED_EXPLICIT if the connection is attached.
      Throws:
      SQLException
      See Also:
    • getServerSessionInfo

      public Properties getServerSessionInfo() throws SQLException
      Description copied from interface: OracleConnection
      Exposes some of the key/value pairs that the server returns at connection time. See oracle.jdbc.driver.T4CTTIoauthenticate, many of the values are received from that TTC call.
      Specified by:
      getServerSessionInfo in interface OracleConnection
      Returns:
      A copy of the server session info Properties object
      Throws:
      SQLException
    • getServerSessionInfo

      public String getServerSessionInfo(String key) throws SQLException
      Description copied from interface: OracleConnection
      Returns the value associated to a key that the server returns at connection time. See oracle.jdbc.driver.T4CTTIoauthenticate, many of the values are received from that TTC call.
      Specified by:
      getServerSessionInfo in interface OracleConnection
      Parameters:
      key - Key to look up
      Returns:
      Value associated to the key, or null if there is no association.
      Throws:
      SQLException
    • isValid

      public boolean isValid(OracleConnection.ConnectionValidation effort, int timeout) throws SQLException
      Description copied from interface: OracleConnection
      Returns true if this connection was working properly to the extent specified by effort at the instant during this call it was checked. It does not imply it is still working after the call returns, only it worked at some point during the call. Returns false if the connection is not working properly at the instant during the call when it is checked or if the timeout is exceeded while checking.
      Specified by:
      isValid in interface OracleConnection
      Parameters:
      effort - How much effort to expend checking the connection.

      Note : The Bequeath (BEQ) protocol supports only COMPLETE, SERVER and NETWORK.
      Using other values may return incorrect result and should be avoided.

      timeout - The time in seconds to wait for the validation action to complete. If the timeout expires before the action completes the method returns false. A value of 0 means no limit.
      Returns:
      true if the connection is valid, false otherwise.
      Throws:
      SQLException - if timeout < 0
      See Also:
    • getEncryptionProviderName

      public String getEncryptionProviderName() throws SQLException
      Description copied from interface: OracleConnection
      If network encryption service is enabled, returns the name of the encryption provider, otherwise returns null.
      Specified by:
      getEncryptionProviderName in interface OracleConnection
      Returns:
      encryptionProviderName
      Throws:
      SQLException
      See Also:
    • getChecksumProviderName

      public String getChecksumProviderName() throws SQLException
      Description copied from interface: OracleConnection
      If network integrity service is enabled, returns the name of the checksum provider, otherwise returns null.
      Specified by:
      getChecksumProviderName in interface OracleConnection
      Returns:
      checksumProviderName
      Throws:
      SQLException
      See Also:
    • getNetConnectionId

      public String getNetConnectionId() throws SQLException
      Description copied from interface: OracleConnection
      Returns the Net Connection ID associated with this connection. In case of a connection failure, this ID will appear in the log. If connection ID prefix is configured then the Net Connection ID is prepended with the configured value. Note that this method can be called on a closed connection.
      Specified by:
      getNetConnectionId in interface OracleConnection
      Throws:
      SQLException
      See Also:
    • disableLogging

      public void disableLogging() throws SQLException
      Description copied from interface: OracleConnection
      Disables the logging for the connection.
      Specified by:
      disableLogging in interface OracleConnection
      Throws:
      SQLException - if an error occurs while disabling logging for the connection
      See Also:
    • enableLogging

      public void enableLogging() throws SQLException
      Description copied from interface: OracleConnection
      Enables logging for the connection.
      Specified by:
      enableLogging in interface OracleConnection
      Throws:
      SQLException - if an error occurs while enabling logging for the connection
      See Also:
    • dumpLog

      public void dumpLog() throws SQLException
      Description copied from interface: OracleConnection
      Dumps the trace data for the connection to the configured handler. By default, the trace data is dumped to default handler i.e. ConsoleHandler. Users can override the default handler value by providing the target handler name in logging configuration file.
      Specified by:
      dumpLog in interface OracleConnection
      Throws:
      SQLException - if an error occurs while dumping the trace data.
    • startTransaction

      public byte[] startTransaction() throws SQLException
      Description copied from interface: OracleConnection
      Starts a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and start a new transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or OracleConnection.pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to start, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      The Transaction timeout is 60s by default. To override this value, use OracleConnection.startTransaction(int).

      Specified by:
      startTransaction in interface OracleConnection
      Returns:
      A unique GTRID generated by the driver that identifies the sessionless transaction. Not null.
      Throws:
      SQLException - if auto-commit is set to true.
    • startTransaction

      public byte[] startTransaction(int timeout) throws SQLException
      Description copied from interface: OracleConnection
      Starts a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and start a new transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or OracleConnection.pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to start, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      Specified by:
      startTransaction in interface OracleConnection
      Parameters:
      timeout - in seconds (>0). This controls how long the transaction will stay alive after it has been suspended. If the transaction is not resumed within the timeout it will be rolled-back.
      Returns:
      A unique GTRID generated by the driver that identifies the started sessionless transaction.
      Throws:
      SQLException - if autcommit is set to true or negative timeout is provided.
    • startTransaction

      public void startTransaction(byte[] GTRID) throws SQLException
      Description copied from interface: OracleConnection
      Starts a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and start a new transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or OracleConnection.pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to start, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      The Transaction timeout is 60s by default. To override this value, use OracleConnection.startTransaction(byte[],int).

      Specified by:
      startTransaction in interface OracleConnection
      Parameters:
      GTRID - (not null) identifies the sessionless transaction to be started.
      Throws:
      SQLException - if autocommit is set to true, invalid GTRID is provided or feature is not supported.
    • startTransaction

      public void startTransaction(byte[] GTRID, int timeout) throws SQLException
      Description copied from interface: OracleConnection
      Starts a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and start a new transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or OracleConnection.pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to start, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      Specified by:
      startTransaction in interface OracleConnection
      Parameters:
      GTRID - (not null) identifies the sessionless transaction to be started.
      timeout - in seconds (>0). This controls how long the transaction will stay alive after it has been suspended. If the transaction is not resumed within the timeout it will be rolled-back.
      Throws:
      SQLException - if autocommit is set to true, invalid parameters are provided or feature is not supported.
    • suspendTransactionImmediately

      public void suspendTransactionImmediately() throws SQLException
      Description copied from interface: OracleConnection
      Suspends current active sessionless transaction. If no transaction is active this operation is a no-op.

      Unlike OracleConnection.suspendTransaction() this operation is sent immediately to the server.

      After suspending the transaction, it will be rolled-back by the server if it is not resumed within the timeout value set in OracleConnection.startTransaction(byte[], int) or OracleConnection.startTransaction(int). By default, this timeout is 60 seconds.

      Specified by:
      suspendTransactionImmediately in interface OracleConnection
      Throws:
      SQLException - if transaction fails to suspend.
    • suspendTransaction

      public void suspendTransaction() throws SQLException
      Description copied from interface: OracleConnection
      Suspends current active sessionless transaction. If no transaction is active this operation is a no-op.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or OracleConnection.pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to suspend, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      After suspending the transaction, it will be rolled-back by the server if it is not resumed within the timeout value set in OracleConnection.startTransaction(byte[], int) or OracleConnection.startTransaction(int). By default, this timeout is 60 seconds.

      Specified by:
      suspendTransaction in interface OracleConnection
      Throws:
      SQLException - if feature is not supported.
    • resumeTransaction

      public void resumeTransaction(byte[] GTRID) throws SQLException
      Description copied from interface: OracleConnection
      Resumes a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and resume the targeted transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or OracleConnection.pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to resume, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      An attempt to resume a transaction that is active in different session will result in Oracle error 25351.

      Specified by:
      resumeTransaction in interface OracleConnection
      Parameters:
      GTRID - (not-null) identifies an existing sessionless transaction to be resumed.
      Throws:
      SQLException - if autocommit is set to true, invalid GTRID is provided or feature is not supported.
    • resumeTransaction

      public void resumeTransaction(byte[] GTRID, int timeout) throws SQLException
      Description copied from interface: OracleConnection
      Resumes a sessionless transaction. If a sessionless transaction is already active in the current session, this call will suspend the current one and resume the targeted transaction.

      This call is not sent to the server immediately, instead it is queued to be transmitted with the next call from the same connection that initiates a round-trip to the server, for example PreparedStatement.execute() or OracleConnection.pingDatabase().
      This implies that the local state of the transaction is not necessarily in sync with the server. This also implies that in case the transaction fails to resume, the exception may not be thrown by this method, rather it will be thrown by the call that initiates the round-trip. Such exception can be identified by the error code 18745, with its cause indicating the original error from this call.

      An attempt to resume a transaction that is active in different session will result in Oracle error 25351.

      Specified by:
      resumeTransaction in interface OracleConnection
      Parameters:
      GTRID - (not-null) identifies an existing sessionless transaction to be resumed.
      timeout - in seconds (non-negative). If the transaction is active in a different session, this value controls how long this call must wait before raising an ORA-25351 error.
      Throws:
      SQLException - if autocommit is set to true, invalid GTRID is provided or feature is not supported.
    • getTransactionId

      public byte[] getTransactionId() throws SQLException
      Specified by:
      getTransactionId in interface OracleConnection
      Returns:
      GTRID identifying the sessionless transaction that is active in the current session, null if no sessionless transaction is active.
      Throws:
      SQLException - if feature is not supported.
    • isXAThroughSessionlessTransactions

      public boolean isXAThroughSessionlessTransactions()
      Specified by:
      isXAThroughSessionlessTransactions in interface OracleConnection
      Returns:
      true if the property oracle.jdbc.XAThroughSessionlessTransactions is set to true.
    • commitAsyncOracle

      public Flow.Publisher<Void> commitAsyncOracle(ErrorSet continueOnErrorSet) throws SQLException
      Description copied from interface: OracleCommonConnection

      Asynchronously make all changes made since the previous commit/rollback permanent and releases any database locks currently held by this Connection object. This method should be used only when auto-commit mode has been disabled.

      After this method is called, calling any method of this Connection that synchronously executes a database call will block until the returned Publisher emits onComplete or onError, or has its Subcription cancelled.

      The returned publisher will only emit onComplete or onError; No items are emitted to onNext.

      When this method returns, the commit operation will have entered into the execution pipeline of this connection. If the commit fails with an error not in continueOnErrorSet, the pipeline will abort all subsequent asynchronous operations, up to the next OracleCommonConnection.resume().

      Specified by:
      commitAsyncOracle in interface OracleCommonConnection
      Parameters:
      continueOnErrorSet - Set of errors which do not cause subsequent operations to be aborted. Not null.
      Returns:
      a Publisher that emits onComplete when the database commit is completed. Not null.
      Throws:
      SQLException - if a database access error occurs, this method is called while participating in a distributed transaction, if this method is called on a closed connection, or if this Connection object is in auto-commit mode
    • rollbackAsyncOracle

      public Flow.Publisher<Void> rollbackAsyncOracle(ErrorSet continueOnErrorSet) throws SQLException
      Description copied from interface: OracleCommonConnection
      Undoes all changes made in the current transaction and releases any database locks currently held by this Connection object. This method should be used only when auto-commit mode has been disabled.

      The returned publisher will only emit onComplete or onError; No items are emitted to onNext.

      When this method returns, the rollback operation will have entered into the execution pipeline of this connection. If the rollback fails with an error not in continueOnErrorSet, the pipeline will abort all subsequent asynchronous operations, up to the next resume or close.

      Specified by:
      rollbackAsyncOracle in interface OracleCommonConnection
      Parameters:
      continueOnErrorSet - Set of errors which do not cause subsequent operations to be aborted. Not null.
      Returns:
      a Publisher that emits onComplete when the database rollback is completed. Not null.
      Throws:
      SQLException - if a database access error occurs, this method is called while participating in a distributed transaction, if this method is called on a closed connection, or if this Connection object is in auto-commit mode
    • closeAsyncOracle

      public Flow.Publisher<Void> closeAsyncOracle() throws SQLException
      Description copied from interface: OracleCommonConnection
      Releases this Connection object's database and JDBC resources immediately. Calling the method close on a Connection object that is already closed is a no-op.

      After this method is called, calling any method of this Connection that synchronously executes a database call will block until the returned Publisher emits onComplete or onError, or has its Subcription cancelled.

      The returned publisher will only emit onComplete or onError; No items are emitted to onNext.

      Specified by:
      closeAsyncOracle in interface OracleCommonConnection
      Returns:
      a Publisher that emits onComplete when the Connection is closed.
      Throws:
      SQLException - if a database access error occurs
    • joinOracle

      public boolean joinOracle(Duration timeout) throws InterruptedException
      Description copied from interface: OracleCommonConnection

      Returns true when all Publishers created by this connection or its dependents have completed, or returns false when the given timeout expires before all Publishers have completed.

      Publishers created after this method is called but before it returns behave exactly the same as Publishers created before this method is called.

      A Publisher is complete after it has called onComplete or onError and that call has returned or it has no Subscribers to which the Publisher will make more calls. No Publisher that was created before this method returns will make another call to onNext, onComplete or onError to an existing Subscriber after this method returns true.

      After this method returns true, Publishers created before this method returned will emit onError with an IllegalStateException to any other Subscriber that subscribes.

      Specified by:
      joinOracle in interface OracleCommonConnection
      Parameters:
      timeout - the maximum time to wait
      Returns:
      true if all Publishers have completed before the timeout, otherwise false.
      Throws:
      InterruptedException - if the current thread was interrupted while waiting
    • resume

      public void resume() throws SQLException
      Description copied from interface: OracleCommonConnection

      Resumes execution if a previous asynchronous operation caused the connection to abort on error, otherwise calling this method does nothing. Conceptually, this method submits an asynchronous operation to the server that is executed in sequence with all other asynchronous operations such as SQL execution, commit, and rollback.

      Execution is resumed implicitly upon invoking any method that synchronously executes a database call.

      Specified by:
      resume in interface OracleCommonConnection
      Throws:
      SQLException - If this connection is closed.
    • continueOnError

      public void continueOnError(ErrorSet errorSet) throws SQLException
      Description copied from interface: OracleCommonConnection

      Configures a set of recoverable errors for asynchronous database operations executed by this connection. Asynchronous database operations include statement executions, result set fetches, LOB reads, LOB writes, commits, and rollbacks. If any of these operations fail with an error that is not contained in the given errorSet, then the execution all subsequent operations are aborted until the next OracleCommonConnection.resume().

      The default setting is to continue on ErrorSet.ALL_ERRORS, such that no failure will cause subsequent operations to be aborted.

      Specified by:
      continueOnError in interface OracleCommonConnection
      Parameters:
      errorSet - the set of errors which do not abort subsequent operations. Not null.
      Throws:
      SQLException - if a database access error occurs or this method is called on a closed Connection
    • getContinueOnErrorSet

      public ErrorSet getContinueOnErrorSet() throws SQLException
      Description copied from interface: OracleCommonConnection

      Returns the set of recoverable errors for asynchronous database operations executed by this connection. The value returned by this method is configured by OracleCommonConnection.continueOnError(ErrorSet).

      Specified by:
      getContinueOnErrorSet in interface OracleCommonConnection
      Returns:
      the set of errors which do not abort subsequent operations. Not null.
      Throws:
      SQLException - if a database access error occurs or this method is called on a closed Connection