Package oracle.jdbc

Class OracleConnectionWrapper

  • <section role="region"> </section> <section role="region">
    • Constructor Detail

      • OracleConnectionWrapper

        public OracleConnectionWrapper()
      • OracleConnectionWrapper

        protected OracleConnectionWrapper​(oracle.jdbc.internal.Monitor.CloseableLock monitorLock)
        Construct an instance which will use the specified lock when this object acts as a synchronization monitor.
        Parameters:
        monitorLock - Synchronization lock for the constructed object
      • OracleConnectionWrapper

        public OracleConnectionWrapper​(OracleConnection toBeWrapped)
        Construct an instance which wraps the arguement
        Parameters:
        toBeWrapped -
    </section> <section role="region">
    • Method Detail

      • 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.OracleConnction which stores its argument.
        Specified by:
        setWrapper in interface OracleConnection
        Parameters:
        wrapper -
        See Also:
        oracle.jdbc.OracleConnection.getOracleConnection
      • 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,
                                     Properties prop)
                              throws SQLException
        Description copied from interface: OracleConnection
        Opens a new proxy session with the username provided in the prop argument and switches to this new session.

        This feature is supported for both thin and oci driver.

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

        public CallableStatement getCallWithKey​(String key)
                                         throws SQLException
        Description copied from interface: OracleConnection
        getCallWithKey Searches the explicit cache for a match on key. If found, the statement is returned, with the paramater and define metadata identical to the last usage. If no match is found, or if explicit caching is not enabled, then null is returned (as opposed to throwing an exception).
        Specified by:
        getCallWithKey in interface OracleConnection
        Parameters:
        key - Specified key to search for
        Returns:
        Throws:
        SQLException
      • 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
      • 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 SQLException
        Description copied from interface: OracleConnection
        getImplicitCachingEnabled Returns true if the implicit cache is currently enabled, false otherwise. This method is valid on both logical and physical connections.
        Specified by:
        getImplicitCachingEnabled in interface OracleConnection
        Returns:
        Throws:
        SQLException
      • getExplicitCachingEnabled

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

        public int getStatementCacheSize()
                                  throws SQLException
        Description copied from interface: OracleConnection
        getStatementCacheSize Returns the current size of the application cache. This is valid on both physical and logical connections. If the statement cache has not been initialized with setStatementCacheSize(), then CACHE_SIZE_NOT_SET is returned.
        Specified by:
        getStatementCacheSize in interface OracleConnection
        Returns:
        the cache size
        Throws:
        SQLException
      • getStatementWithKey

        public PreparedStatement getStatementWithKey​(String key)
                                              throws SQLException
        Description copied from interface: OracleConnection
        getStatementWithKey Searches the explicit cache for a match on key. If found, the statement is returned, with the paramater and define metadata identical to the last usage. If no match is found, or if explicit caching is not enabled, then null is returned (as opposed to throwing an exception).
        Specified by:
        getStatementWithKey in interface OracleConnection
        Parameters:
        key - Specified key to search for
        Returns:
        Throws:
        SQLException
      • getStructAttrCsId

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

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

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

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

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

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

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

        public void oracleReleaseSavepoint​(OracleSavepoint savepoint)
                                    throws SQLException
        Description copied from interface: OracleConnection
        Removes the given OracleSavepoint object from the current transaction. Any reference to the savepoint after it have been removed will cause an SQLException to be thrown.
        Specified by:
        oracleReleaseSavepoint in interface OracleConnection
        Parameters:
        savepoint - the OracleSavepoint object to be removed
        Throws:
        SQLException - if a database access error occurs or the given OracleSavepoint object is not a valid savepoint in the current transaction
        See Also:
        OracleSavepoint
      • pingDatabase

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

        public void purgeExplicitCache()
                                throws SQLException
        Description copied from interface: OracleConnection
        purgeExplicitCache Removes all existing statements from the explicit cache, after which it will be empty. This method does not affect the size of the application cache, nor the enabled/disabled status.
        Specified by:
        purgeExplicitCache in interface OracleConnection
        Throws:
        SQLException
      • purgeImplicitCache

        public void purgeImplicitCache()
                                throws SQLException
        Description copied from interface: OracleConnection
        purgeImplicitCache Removes all existing statements from the implicit cache, after which it will be empty. This method does not affect the size of the application cache, nor the enabled/disabled status.
        Specified by:
        purgeImplicitCache in interface OracleConnection
        Throws:
        SQLException
      • setDefaultRowPrefetch

        public void setDefaultRowPrefetch​(int value)
                                   throws SQLException
        Description copied from interface: OracleConnection
        Sets the value of row prefetch for all statements associated with this connection and created after this value was set.

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

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

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

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

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

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

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

        Specified by:
        setDefaultRowPrefetch in interface OracleConnection
        Parameters:
        value - the number of rows to prefetch
        Throws:
        SQLException - if the argument value is <=0
        See Also:
        OracleStatement.setRowPrefetch, getDefaultRowPrefetch
      • setExplicitCachingEnabled

        public void setExplicitCachingEnabled​(boolean cache)
                                       throws SQLException
        Description copied from interface: OracleConnection
        setExplicitCachingEnabled Enables or disables the explicit cache. Note that this is independent of the cache size, set with setStatmentCacheSize().
        Specified by:
        setExplicitCachingEnabled in interface OracleConnection
        Parameters:
        cache - If true, then explicit caching will be enabled. If false, then any existing statements will be purged and the explicit cache will be disabled.
        Throws:
        SQLException - if called on a logical connection.
      • setImplicitCachingEnabled

        public void setImplicitCachingEnabled​(boolean cache)
                                       throws SQLException
        Description copied from interface: OracleConnection
        setImplicitCachingEnabled Enables or disables the implicit cache. Note that this is independent of the cache size, set with setStatmentCacheSize().
        Specified by:
        setImplicitCachingEnabled in interface OracleConnection
        Parameters:
        cache - If true, then implicit caching will be enabled. If false, then any existing statements will be purged and the implicit cache will be disabled.
        Throws:
        SQLException - if called on a logical connection.
      • setIncludeSynonyms

        public void setIncludeSynonyms​(boolean synonyms)
        Description copied from interface: OracleConnection
        Turns on or off retrieval of synonym information in DatabaseMetaData. getColumns.

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

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

        Specified by:
        setIncludeSynonyms in interface OracleConnection
        Parameters:
        synonyms - true if you want to retrieve synonym information in DatabaseMetaData.getColumns and false otherwise.
        See Also:
        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
      • setStatementCacheSize

        public void setStatementCacheSize​(int size)
                                   throws SQLException
        Description copied from interface: OracleConnection
        setStatementCacheSize Specifies the size of the size of the application cache (which will be used by both implicit and explicit caching).
        Specified by:
        setStatementCacheSize in interface OracleConnection
        Parameters:
        size - Requested size of the cache. If the existing cache size is less than size, statements will be purged to reduce the size.
        Throws:
        SQLException - if size < 0, or if called on a logical connection.
      • 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 SQLException
        Description copied from interface: OracleConnection
        Shuts the database server down. This method requires to be connected as either SYSOPER or SYSDBA.
        Specified by:
        shutdown in interface OracleConnection
        Parameters:
        mode - can be either
        • OracleConnection.DatabaseShutdownMode.CONNECT
        • OracleConnection.DatabaseShutdownMode.TRANSACTIONAL
        • OracleConnection.DatabaseShutdownMode.TRANSACTIONAL_LOCAL
        • OracleConnection.DatabaseShutdownMode.IMMEDIATE
        • OracleConnection.DatabaseShutdownMode.ABORT
        • OracleConnection.DatabaseShutdownMode.FINAL
        Throws:
        SQLException
      • startup

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

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

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

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

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

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

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

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

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

        public void registerTAFCallback​(OracleOCIFailover cbk,
                                        Object obj)
                                 throws SQLException
        Description copied from interface: OracleConnection
        Register an application TAF Callback instance that will be called when an application failover occurs. The TAF feature is only available in the Jdbc OCI driver.
        Specified by:
        registerTAFCallback in interface OracleConnection
        Parameters:
        cbk - Callback instance.
        obj - Context object in which any client's state can be stored and provided when the callback method is invoked.
        Throws:
        SQLException - if this method is invoked in drivers other than the Jdbc OCI driver.
      • close

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        This method uses one roundtrip.

        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:
        SQLException
      • getDatabaseChangeRegistration

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

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

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

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

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

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

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

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

            Statement stmt= conn.createStatement();
            ResultSet rs = stmt.executeQuery("select regid,callback from USER_CHANGE_NOTIFICATION_REGS");
            while(rs.next())
            {
              long regid = rs.getLong(1);
              String callback = rs.getString(2);
              ((OracleConnection)conn).unregisterDatabaseChangeNotification(regid,callback);
            }
            rs.close();
            stmt.close();
            
        Specified by:
        unregisterDatabaseChangeNotification in interface OracleConnection
        Throws:
        SQLException
        See Also:
        OracleConnection.unregisterDatabaseChangeNotification(oracle.jdbc.dcn.DatabaseChangeRegistration)
      • registerAQNotification

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

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

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

        This method uses one roundtrip.

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

        public AQMessage dequeue​(String queueName,
                                 AQDequeueOptions opt,
                                 byte[] tdo)
                          throws SQLException
        Description copied from interface: OracleConnection
        Dequeues an AQ message from the queue specified by its name.
        Specified by:
        dequeue in interface OracleConnection
        Parameters:
        queueName - name of the queue from which to dequeue.
        opt - dequeue options
        tdo - the Type Descriptor Object OID of the type of the queue.
        Returns:
        the AQMessage dequeued.
        Throws:
        SQLException
      • dequeue

        public AQMessage dequeue​(String queueName,
                                 AQDequeueOptions opt,
                                 byte[] tdo,
                                 int version)
                          throws SQLException
        Description copied from interface: OracleConnection
        Dequeues an AQ message from the queue specified by its name.
        Specified by:
        dequeue in interface OracleConnection
        Parameters:
        queueName - name of the queue from which to dequeue.
        opt - dequeue options
        tdo - the Type Descriptor Object OID of the type of the queue.
        version - the version of the type Descriptor
        Returns:
        the AQMessage dequeued.
        Throws:
        SQLException
      • dequeue

        public AQMessage dequeue​(String queueName,
                                 AQDequeueOptions opt,
                                 String typeName)
                          throws SQLException
        Description copied from interface: OracleConnection
        Dequeues an AQ message from the queue specified by its name.
        Specified by:
        dequeue in interface OracleConnection
        Parameters:
        queueName - name of the queue from which to dequeue.
        opt - dequeue options.
        typeName - the name of the type of the queue. For example, it can be "RAW", "SYS.ANYDATA" or "SCOTT.MY_OBJECT_TYPE".
        Returns:
        the AQMessage dequeued.
        Throws:
        SQLException
      • dequeue

        public AQMessage[] dequeue​(String queueName,
                                   AQDequeueOptions opt,
                                   String typeName,
                                   int deqsize)
                            throws SQLException
        Description copied from interface: OracleConnection
        Dequeues an array of AQ messages from the queue specified by its name.
        Specified by:
        dequeue in interface OracleConnection
        Parameters:
        queueName - name of the queue from which to dequeue.
        opt - dequeue options.
        typeName - the name of the type of the queue. For example, it can be "RAW", "SYS.ANYDATA" or "SCOTT.MY_OBJECT_TYPE".
        deqsize - dequeue number of messages
        Returns:
        the array of AQMessage dequeued.
        Throws:
        SQLException
      • dequeue

        public AQMessage[] dequeue​(String queueName,
                                   AQDequeueOptions opt,
                                   byte[] tdo,
                                   int version,
                                   int deqsize)
                            throws SQLException
        Description copied from interface: OracleConnection
        Dequeues an array of AQ messages from the queue specified by its name.
        Specified by:
        dequeue in interface OracleConnection
        Parameters:
        queueName - name of the queue from which to dequeue.
        opt - dequeue options
        tdo - the Type Descriptor Object OID of the type of the queue.
        version - the version of the type Descriptor
        deqsize - dequeue number of messages
        Returns:
        the array of AQMessage dequeued.
        Throws:
        SQLException
      • enqueue

        public int enqueue​(String queueName,
                           AQEnqueueOptions opt,
                           AQMessage[] mesgs)
                    throws SQLException
        Description copied from interface: OracleConnection
        Enqueues the given array of AQ messages to the queue specified by its name.
        Specified by:
        enqueue in interface OracleConnection
        Parameters:
        queueName - name of the queue where to enqueue.
        opt - enqueue options.
        mesgs - the array of AQ messages to enqueue.
        Returns:
        actual number of messages enqueued.
        Throws:
        SQLException
      • cancel

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        public boolean isValid​(OracleConnection.ConnectionValidation effort,
                               int timeout)
                        throws SQLException
        Description copied from interface: OracleConnection
        Returns true if this connection was working properly to the extent specified by effort at the instant during this call it was checked. It does not imply it is still working after the call returns, only it worked at some point during the call. Returns false if the connection is not working properly at the instant during the call when it is checked or if the timeout is exceeded while checking.
        Specified by:
        isValid in interface OracleConnection
        Parameters:
        effort - How much effort to expend checking the connection.
        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 mean no limit.
        Returns:
        true if the connection is valid, false otherwise.
        Throws:
        SQLException - if timeout < 0
      • disableLogging

        public void disableLogging()
                            throws SQLException
        Disables the logging for the underlying connection. If the underlying OracleConnection does not support in-memory logging then it is a NO-OP call.
        Specified by:
        disableLogging in interface OracleConnection
        Throws:
        SQLException
      • enableLogging

        public void enableLogging()
                           throws SQLException
        Enables logging for the underlying connection. If the underlying OracleConnection does not support in-memory logging then it is a NO-OP call.
        Specified by:
        enableLogging in interface OracleConnection
        Throws:
        SQLException
      • dumpLog

        public void dumpLog()
                     throws SQLException
        Dumps the log for the underlying connection to the configured dump location. The log file content is encrypted using the configured public key certificate. If the underlying OracleConnection does not support in-memory logging then it is a NO-OP call.
        Specified by:
        dumpLog in interface OracleConnection
        Throws:
        SQLException
      • getLogger

        public oracle.jdbc.diagnostics.SecuredLogger getLogger()
                                                        throws SQLException
        Returns the SecuredLogger instance of the underlying OracleConnection. Returns null if the underlying connection implementation does not support logging.
        Specified by:
        getLogger in interface OracleConnection
        Throws:
        SQLException
      • commitAsyncOracle

        public Flow.Publisher<Void> commitAsyncOracle()
                                               throws SQLException
        Description copied from interface: OracleConnection
        Asynchronously make all changes made since the previous commit/rollback permanent and releases any database locks currently held by this Connection object. This method should be used only when auto-commit mode has been disabled.

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

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

        Asynchronous tasks initiated by this method will execute under the current AccessControlContext of the calling thread.

        Specified by:
        commitAsyncOracle in interface OracleConnection
        Returns:
        a Publisher that emits onComplete when the database commit is completed.
        Throws:
        SQLException - if a database access error occurs, this method is called while participating in a distributed transaction, if this method is called on a closed connection or this Connection object is in auto-commit mode
      • rollbackAsyncOracle

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

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

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

        Asynchronous tasks initiated by this method will execute under the current AccessControlContext of the calling thread.

        Specified by:
        rollbackAsyncOracle in interface OracleConnection
        Returns:
        a Publisher that emits onComplete when the database rollback is completed.
        Throws:
        SQLException - if a database access error occurs, this method is called while participating in a distributed transaction, if this method is called on a closed connection or this Connection object is in auto-commit mode
      • closeAsyncOracle

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

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

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

        Asynchronous tasks initiated by this method will execute under the current AccessControlContext of the calling thread.

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

        public final oracle.jdbc.internal.Monitor.CloseableLock getMonitorLock()
        Specified by:
        getMonitorLock in interface oracle.jdbc.internal.Monitor
    </section>