Package oracle.jdbc

Class OracleConnectionWrapper

  • All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.Connection, java.sql.Wrapper, OracleCommonConnection, OracleConnection

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

      • connection

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

      • OracleConnectionWrapper

        public OracleConnectionWrapper()
      • OracleConnectionWrapper

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

      • getDatabaseTimeZone

        public java.lang.String getDatabaseTimeZone()
                                             throws java.sql.SQLException
        Returns the database timezone.
        Throws:
        java.sql.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 java.sql.Statement createStatement()
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

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

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

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

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

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

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

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

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

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

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

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

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

        public void setCatalog​(java.lang.String catalog)
                        throws java.sql.SQLException
        Specified by:
        setCatalog in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getCatalog

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

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

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

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

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

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

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

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

        public java.util.Map<java.lang.String,​java.lang.Class<?>> getTypeMap()
                                                                            throws java.sql.SQLException
        Specified by:
        getTypeMap in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setTypeMap

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

        public boolean isProxySession()
        Description copied from interface: OracleConnection
        Returns true if the current session associated with this connection is a proxy session.
        Specified by:
        isProxySession in interface OracleConnection
        Returns:
      • openProxySession

        public void openProxySession​(int mode,
                                     java.util.Properties prop)
                              throws java.sql.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:
        java.sql.SQLException
      • archive

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

        public boolean getAutoClose()
                             throws java.sql.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:
        java.sql.SQLException - should never been raised
        See Also:
        setAutoClose
      • getCallWithKey

        public java.sql.CallableStatement getCallWithKey​(java.lang.String key)
                                                  throws java.sql.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:
        java.sql.SQLException
      • 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:
        OracleStatement.setRowPrefetch, setDefaultRowPrefetch
      • getEndToEndMetrics

        public java.lang.String[] getEndToEndMetrics()
                                              throws java.sql.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:
        java.sql.SQLException - if an error occurs
        See Also:
        setEndToEndMetrics, Connection.getClientInfo(java.lang.String), Connection.getClientInfo()
      • getEndToEndECIDSequenceNumber

        public short getEndToEndECIDSequenceNumber()
                                            throws java.sql.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:
        java.sql.SQLException - if an error occurs
        See Also:
        Connection.getClientInfo(java.lang.String), Connection.getClientInfo()
      • 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:
        setIncludeSynonyms
      • 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:
        setRestrictGetTables
      • getImplicitCachingEnabled

        public boolean getImplicitCachingEnabled()
                                          throws java.sql.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:
        java.sql.SQLException
      • getExplicitCachingEnabled

        public boolean getExplicitCachingEnabled()
                                          throws java.sql.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:
        java.sql.SQLException
      • getJavaObject

        public java.lang.Object getJavaObject​(java.lang.String sql_name)
                                       throws java.sql.SQLException
        Specified by:
        getJavaObject in interface OracleConnection
        Throws:
        java.sql.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:
        setRemarksReporting
      • getSQLType

        public java.lang.String getSQLType​(java.lang.Object obj)
                                    throws java.sql.SQLException
        Specified by:
        getSQLType in interface OracleConnection
        Throws:
        java.sql.SQLException
      • getStatementCacheSize

        public int getStatementCacheSize()
                                  throws java.sql.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:
        java.sql.SQLException
      • getStatementWithKey

        public java.sql.PreparedStatement getStatementWithKey​(java.lang.String key)
                                                       throws java.sql.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:
        java.sql.SQLException
      • getStructAttrCsId

        public short getStructAttrCsId()
                                throws java.sql.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:
        java.sql.SQLException - if Conversion is null
        See Also:
        oracle.sql.CharacterSet for the set of constants defined for the identifiers."
      • getUserName

        public java.lang.String getUserName()
                                     throws java.sql.SQLException
        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:
        java.sql.SQLException - if the logical connection is closed
      • getCurrentSchema

        public java.lang.String getCurrentSchema()
                                          throws java.sql.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:
        java.sql.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:
        setUsingXAFlag
      • 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:
        setXAErrorFlag
      • oracleSetSavepoint

        public OracleSavepoint oracleSetSavepoint()
                                           throws java.sql.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:
        java.sql.SQLException - if a database access error occurs or this Connection object is currently in auto-commit mode
        See Also:
        OracleSavepoint
      • oracleSetSavepoint

        public OracleSavepoint oracleSetSavepoint​(java.lang.String name)
                                           throws java.sql.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:
        java.sql.SQLException - if a database access error occurs or this Connection object is currently in auto-commit mode
        See Also:
        OracleSavepoint
      • oracleRollback

        public void oracleRollback​(OracleSavepoint savepoint)
                            throws java.sql.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:
        java.sql.SQLException - if a database access error occurs, the OracleSavepoint object is no longer valid, or this Connection object is currently in auto-commit mode
        See Also:
        OracleSavepoint
      • oracleReleaseSavepoint

        public void oracleReleaseSavepoint​(OracleSavepoint savepoint)
                                    throws java.sql.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:
        java.sql.SQLException - if a database access error occurs or the given OracleSavepoint object is not a valid savepoint in the current transaction
        See Also:
        OracleSavepoint
      • pingDatabase

        public int pingDatabase()
                         throws java.sql.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:
        java.sql.SQLException
      • pingDatabase

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

        public void purgeExplicitCache()
                                throws java.sql.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:
        java.sql.SQLException
      • purgeImplicitCache

        public void purgeImplicitCache()
                                throws java.sql.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:
        java.sql.SQLException
      • putDescriptor

        public void putDescriptor​(java.lang.String sql_name,
                                  java.lang.Object desc)
                           throws java.sql.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:
        java.sql.SQLException - if sql_name or desc is null
        See Also:
        getDescriptor, oracle.sql.TypeDescriptor
      • removeDescriptor

        public void removeDescriptor​(java.lang.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​(java.lang.String sql_name,
                                    java.lang.Class<?> java_class)
                             throws java.sql.SQLException
        Specified by:
        registerSQLType in interface OracleConnection
        Throws:
        java.sql.SQLException
      • registerSQLType

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

        public void setAutoClose​(boolean autoClose)
                          throws java.sql.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:
        java.sql.SQLException - when the argument autoClose is false
        See Also:
        getAutoClose
      • setDefaultRowPrefetch

        public void setDefaultRowPrefetch​(int value)
                                   throws java.sql.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:
        java.sql.SQLException - if the argument value is <=0
        See Also:
        OracleStatement.setRowPrefetch, getDefaultRowPrefetch
      • setEndToEndMetrics

        public void setEndToEndMetrics​(java.lang.String[] metrics,
                                       short sequenceNumber)
                                throws java.sql.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:
        java.sql.SQLException - if an error occurs
        See Also:
        getEndToEndMetrics, Connection.setClientInfo(java.util.Properties), Connection.setClientInfo(java.lang.String, java.lang.String)
      • setExplicitCachingEnabled

        public void setExplicitCachingEnabled​(boolean cache)
                                       throws java.sql.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:
        java.sql.SQLException - if called on a logical connection.
      • setImplicitCachingEnabled

        public void setImplicitCachingEnabled​(boolean cache)
                                       throws java.sql.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:
        java.sql.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:
        getIncludeSynonyms
      • 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:
        getRemarksReporting
      • 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:
        getRestrictGetTables
      • setStmtCacheSize

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

        public void setStatementCacheSize​(int size)
                                   throws java.sql.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:
        java.sql.SQLException - if size < 0, or if called on a logical connection.
      • setStmtCacheSize

        public void setStmtCacheSize​(int size,
                                     boolean clearMetaData)
                              throws java.sql.SQLException
        Specified by:
        setStmtCacheSize in interface OracleConnection
        Throws:
        java.sql.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:
        getUsingXAFlag
      • 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:
        getXAErrorFlag
      • shutdown

        public void shutdown​(OracleConnection.DatabaseShutdownMode mode)
                      throws java.sql.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:
        java.sql.SQLException
      • startup

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

        public void startup​(OracleConnection.DatabaseStartupMode mode)
                     throws java.sql.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:
        java.sql.SQLException
      • startup

        public void startup​(OracleConnection.DatabaseStartupMode mode,
                            java.lang.String pfileName)
                     throws java.sql.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:
        java.sql.SQLException
      • prepareStatementWithKey

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

        public java.sql.CallableStatement prepareCallWithKey​(java.lang.String key)
                                                      throws java.sql.SQLException
        Specified by:
        prepareCallWithKey in interface OracleConnection
        Parameters:
        key - the key with which it was closed
        Returns:
        a java.sql.CallableStatement object
        Throws:
        java.sql.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
      • 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:
        setCreateStatementAsRefCursor
      • setSessionTimeZone

        public void setSessionTimeZone​(java.lang.String regionName)
                                throws java.sql.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:
        java.sql.SQLException - if an error occurred.
      • getSessionTimeZone

        public java.lang.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 java.lang.String getSessionTimeZoneOffset()
                                                  throws java.sql.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:
        java.sql.SQLException
      • _getPC

        public java.sql.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,
                                        java.lang.Object obj)
                                 throws java.sql.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:
        java.sql.SQLException - if this method is invoked in drivers other than the Jdbc OCI driver.
      • getProperties

        public java.util.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 java.sql.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:
        java.sql.SQLException - if a database access error occurs
      • setPlsqlWarnings

        public void setPlsqlWarnings​(java.lang.String setting)
                              throws java.sql.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:
        java.sql.SQLException - if a database access error occurs
      • setHoldability

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

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

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

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

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

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

        public java.sql.Savepoint setSavepoint​(java.lang.String name)
                                        throws java.sql.SQLException
        Specified by:
        setSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • rollback

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

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

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

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

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

        public ARRAY createARRAY​(java.lang.String typeName,
                                 java.lang.Object elements)
                          throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createOracleArray

        public java.sql.Array createOracleArray​(java.lang.String arrayTypeName,
                                                java.lang.Object elements)
                                         throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11.2.0.5.0
      • createBINARY_DOUBLE

        public BINARY_DOUBLE createBINARY_DOUBLE​(double value)
                                          throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createBINARY_FLOAT

        public BINARY_FLOAT createBINARY_FLOAT​(float value)
                                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createDATE

        public DATE createDATE​(java.sql.Date value)
                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createDATE

        public DATE createDATE​(java.sql.Time value)
                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createDATE

        public DATE createDATE​(java.sql.Timestamp value)
                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createDATE

        public DATE createDATE​(java.sql.Date value,
                               java.util.Calendar cal)
                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createDATE

        public DATE createDATE​(java.sql.Time value,
                               java.util.Calendar cal)
                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createDATE

        public DATE createDATE​(java.sql.Timestamp value,
                               java.util.Calendar cal)
                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createDATE

        public DATE createDATE​(java.lang.String value)
                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createINTERVALDS

        public INTERVALDS createINTERVALDS​(java.lang.String value)
                                    throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createINTERVALYM

        public INTERVALYM createINTERVALYM​(java.lang.String value)
                                    throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createNUMBER

        public NUMBER createNUMBER​(boolean value)
                            throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createNUMBER

        public NUMBER createNUMBER​(byte value)
                            throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createNUMBER

        public NUMBER createNUMBER​(short value)
                            throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createNUMBER

        public NUMBER createNUMBER​(int value)
                            throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createNUMBER

        public NUMBER createNUMBER​(long value)
                            throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createNUMBER

        public NUMBER createNUMBER​(float value)
                            throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createNUMBER

        public NUMBER createNUMBER​(double value)
                            throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createNUMBER

        public NUMBER createNUMBER​(java.math.BigDecimal value)
                            throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createNUMBER

        public NUMBER createNUMBER​(java.math.BigInteger value)
                            throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createNUMBER

        public NUMBER createNUMBER​(java.lang.String value,
                                   int scale)
                            throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMP

        public TIMESTAMP createTIMESTAMP​(java.sql.Date value)
                                  throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMP

        public TIMESTAMP createTIMESTAMP​(DATE value)
                                  throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMP

        public TIMESTAMP createTIMESTAMP​(java.sql.Time value)
                                  throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMP

        public TIMESTAMP createTIMESTAMP​(java.sql.Timestamp value)
                                  throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMP

        public TIMESTAMP createTIMESTAMP​(java.sql.Timestamp value,
                                         java.util.Calendar cal)
                                  throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        12R2
      • createTIMESTAMP

        public TIMESTAMP createTIMESTAMP​(java.lang.String value)
                                  throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPTZ

        public TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Date value)
                                      throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPTZ

        public TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Date value,
                                             java.util.Calendar cal)
                                      throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPTZ

        public TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Time value)
                                      throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPTZ

        public TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Time value,
                                             java.util.Calendar cal)
                                      throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPTZ

        public TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Timestamp value)
                                      throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPTZ

        public TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Timestamp value,
                                             java.util.Calendar cal)
                                      throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPTZ

        public TIMESTAMPTZ createTIMESTAMPTZ​(java.sql.Timestamp value,
                                             java.time.ZoneId tzid)
                                      throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPTZ

        public TIMESTAMPTZ createTIMESTAMPTZ​(java.lang.String value)
                                      throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPTZ

        public TIMESTAMPTZ createTIMESTAMPTZ​(java.lang.String value,
                                             java.util.Calendar cal)
                                      throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPLTZ

        public TIMESTAMPLTZ createTIMESTAMPLTZ​(java.sql.Date value,
                                               java.util.Calendar cal)
                                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPLTZ

        public TIMESTAMPLTZ createTIMESTAMPLTZ​(java.sql.Time value,
                                               java.util.Calendar cal)
                                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPLTZ

        public TIMESTAMPLTZ createTIMESTAMPLTZ​(java.sql.Timestamp value,
                                               java.util.Calendar cal)
                                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPLTZ

        public TIMESTAMPLTZ createTIMESTAMPLTZ​(java.lang.String value,
                                               java.util.Calendar cal)
                                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createTIMESTAMPLTZ

        public TIMESTAMPLTZ createTIMESTAMPLTZ​(DATE value,
                                               java.util.Calendar cal)
                                        throws java.sql.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:
        java.sql.SQLException - if a database error occurs
        Since:
        11R1
      • createArrayOf

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

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

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

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

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

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

        public boolean isValid​(int timeout)
                        throws java.sql.SQLException
        Specified by:
        isValid in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setClientInfo

        public void setClientInfo​(java.lang.String name,
                                  java.lang.String value)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • setClientInfo

        public void setClientInfo​(java.util.Properties properties)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • getClientInfo

        public java.lang.String getClientInfo​(java.lang.String name)
                                       throws java.sql.SQLException
        Specified by:
        getClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getClientInfo

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

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

        protected <T> T proxyFor​(java.lang.Object obj,
                                 java.lang.Class<T> iface)
                          throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • unwrap

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

        public void abort​(java.util.concurrent.Executor executor)
                   throws java.sql.SQLException
        Specified by:
        abort in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getNetworkTimeout

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

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

        public void setNetworkTimeout​(java.util.concurrent.Executor executor,
                                      int milliseconds)
                               throws java.sql.SQLException
        Specified by:
        setNetworkTimeout in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSchema

        public void setSchema​(java.lang.String schema)
                       throws java.sql.SQLException
        Specified by:
        setSchema in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • registerDatabaseChangeNotification

        public DatabaseChangeRegistration registerDatabaseChangeNotification​(java.util.Properties options)
                                                                      throws java.sql.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.

        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.
        Returns:
        DatabaseChangeRegistration
        Throws:
        java.sql.SQLException
      • getDatabaseChangeRegistration

        public DatabaseChangeRegistration getDatabaseChangeRegistration​(int regid)
                                                                 throws java.sql.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:
        java.sql.SQLException
      • unregisterDatabaseChangeNotification

        public void unregisterDatabaseChangeNotification​(int registrationId,
                                                         java.lang.String host,
                                                         int tcpport)
                                                  throws java.sql.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:
        java.sql.SQLException
        See Also:
        OracleConnection.unregisterDatabaseChangeNotification(long,String)
      • unregisterDatabaseChangeNotification

        public void unregisterDatabaseChangeNotification​(long registrationId,
                                                         java.lang.String callback)
                                                  throws java.sql.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:
        java.sql.SQLException
        See Also:
        OracleConnection.unregisterDatabaseChangeNotification(oracle.jdbc.dcn.DatabaseChangeRegistration)
      • registerAQNotification

        public AQNotificationRegistration[] registerAQNotification​(java.lang.String[] name,
                                                                   java.util.Properties[] options,
                                                                   java.util.Properties globaloptions)
                                                            throws java.sql.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:
        java.sql.SQLException
      • unregisterAQNotification

        public void unregisterAQNotification​(AQNotificationRegistration registration)
                                      throws java.sql.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:
        java.sql.SQLException
      • dequeue

        public AQMessage dequeue​(java.lang.String queueName,
                                 AQDequeueOptions opt,
                                 byte[] tdo)
                          throws java.sql.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:
        java.sql.SQLException
      • dequeue

        public AQMessage dequeue​(java.lang.String queueName,
                                 AQDequeueOptions opt,
                                 byte[] tdo,
                                 int version)
                          throws java.sql.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:
        java.sql.SQLException
      • dequeue

        public AQMessage dequeue​(java.lang.String queueName,
                                 AQDequeueOptions opt,
                                 java.lang.String typeName)
                          throws java.sql.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:
        java.sql.SQLException
      • dequeue

        public AQMessage[] dequeue​(java.lang.String queueName,
                                   AQDequeueOptions opt,
                                   java.lang.String typeName,
                                   int deqsize)
                            throws java.sql.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:
        java.sql.SQLException
      • dequeue

        public AQMessage[] dequeue​(java.lang.String queueName,
                                   AQDequeueOptions opt,
                                   byte[] tdo,
                                   int version,
                                   int deqsize)
                            throws java.sql.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:
        java.sql.SQLException
      • enqueue

        public void enqueue​(java.lang.String queueName,
                            AQEnqueueOptions opt,
                            AQMessage mesg)
                     throws java.sql.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:
        java.sql.SQLException
      • enqueue

        public int enqueue​(java.lang.String queueName,
                           AQEnqueueOptions opt,
                           AQMessage[] mesgs)
                    throws java.sql.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:
        java.sql.SQLException
      • commit

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

        public void cancel()
                    throws java.sql.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:
        java.sql.SQLException - if the cancel operation fails
      • abort

        public void abort()
                   throws java.sql.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:
        java.sql.SQLException - -- Io Exception: Socket closed - ORA-17002 TNS:not connected - ORA-12153
      • getAllTypeDescriptorsInCurrentSchema

        public TypeDescriptor[] getAllTypeDescriptorsInCurrentSchema()
                                                              throws java.sql.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:
        java.sql.SQLException - If an error occurs.
      • getTypeDescriptorsFromListInCurrentSchema

        public TypeDescriptor[] getTypeDescriptorsFromListInCurrentSchema​(java.lang.String[] typeNames)
                                                                   throws java.sql.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:
        java.sql.SQLException - if the specified type does not exist, or if an error occurred.
      • getTypeDescriptorsFromList

        public TypeDescriptor[] getTypeDescriptorsFromList​(java.lang.String[][] schemaAndTypeNamePairs)
                                                    throws java.sql.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:
        java.sql.SQLException - if any of the specified types does not exist, or if an error occurs.
      • getDataIntegrityAlgorithmName

        public java.lang.String getDataIntegrityAlgorithmName()
                                                       throws java.sql.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:
        java.sql.SQLException
      • getEncryptionAlgorithmName

        public java.lang.String getEncryptionAlgorithmName()
                                                    throws java.sql.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:
        java.sql.SQLException
      • getAuthenticationAdaptorName

        public java.lang.String getAuthenticationAdaptorName()
                                                      throws java.sql.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:
        java.sql.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​(java.util.TimeZone tz)
                                throws java.sql.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:
        java.sql.SQLException - if there is an issue while setting the TimeZone
      • getDefaultTimeZone

        public java.util.TimeZone getDefaultTimeZone()
                                              throws java.sql.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:
        java.sql.SQLException - If there is any issue while retrieving the TimeZone
      • setApplicationContext

        public void setApplicationContext​(java.lang.String nameSpace,
                                          java.lang.String attribute,
                                          java.lang.String value)
                                   throws java.sql.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:
        java.sql.SQLException - If an error occurs
        See Also:
        OracleConnection.clearAllApplicationContext(java.lang.String), Connection.setClientInfo(java.lang.String, java.lang.String), Connection.setClientInfo(java.util.Properties)
      • addLogicalTransactionIdEventListener

        public void addLogicalTransactionIdEventListener​(LogicalTransactionIdEventListener listener)
                                                  throws java.sql.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:
        java.sql.SQLException
      • addLogicalTransactionIdEventListener

        public void addLogicalTransactionIdEventListener​(LogicalTransactionIdEventListener listener,
                                                         java.util.concurrent.Executor executor)
                                                  throws java.sql.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:
        java.sql.SQLException
      • getLogicalTransactionId

        public LogicalTransactionId getLogicalTransactionId()
                                                     throws java.sql.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:
        java.sql.SQLException
      • getProviderAllowedProperties

        public java.util.Set<java.lang.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.
      • attachServerConnection

        public boolean attachServerConnection()
                                       throws java.sql.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:
        java.sql.SQLException - If there is an exception while obtaining server process
        Since:
        12.1
        See Also:
        isDRCPEnabled(), detachServerConnection(java.lang.String), needToPurgeStatementCache()
      • detachServerConnection

        public void detachServerConnection​(java.lang.String tag)
                                    throws java.sql.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:
        java.sql.SQLException - If there was an exception while releasing
        Since:
        12.1
        See Also:
        isDRCPEnabled(), attachServerConnection(), needToPurgeStatementCache()
      • beginRequest

        public void beginRequest()
                          throws java.sql.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 java.sql.Connection
        Specified by:
        beginRequest in interface OracleConnection
        Throws:
        java.sql.SQLException - When called with an open transaction on this connection.
      • endRequest

        public void endRequest()
                        throws java.sql.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 java.sql.Connection
        Specified by:
        endRequest in interface OracleConnection
        Throws:
        java.sql.SQLException - When called with an open transaction on this connection.
      • setShardingKey

        public void setShardingKey​(OracleShardingKey key,
                                   OracleShardingKey superKey)
                            throws java.sql.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:
        java.sql.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 java.sql.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:
        java.sql.SQLException - if there is any exception while performing this validation or if timeout value is less than 0.
      • setShardingKeyIfValid

        public boolean setShardingKeyIfValid​(OracleShardingKey shardingKey,
                                             int timeout)
                                      throws java.sql.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:
        java.sql.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 java.sql.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:
        java.sql.SQLException - if there is an exception while setting the sharding keys on this connection.
      • getServerSessionInfo

        public java.util.Properties getServerSessionInfo()
                                                  throws java.sql.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:
        java.sql.SQLException
      • getServerSessionInfo

        public java.lang.String getServerSessionInfo​(java.lang.String key)
                                              throws java.sql.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:
        java.sql.SQLException
      • isValid

        public boolean isValid​(OracleConnection.ConnectionValidation effort,
                               int timeout)
                        throws java.sql.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.
        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:
        java.sql.SQLException - if timeout < 0
      • getNetConnectionId

        public java.lang.String getNetConnectionId()
                                            throws java.sql.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:
        java.sql.SQLException
        See Also:
        OracleConnection.CONNECTION_PROPERTY_THIN_NET_CONNECTIONID_PREFIX
      • dumpLog

        public void dumpLog()
                     throws java.sql.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:
        java.sql.SQLException - if an error occurs while dumping the trace data.