Module org.hsqldb
Package org.hsqldb.jdbc

## Class JDBCClobClient

- java.lang.Object
- - org.hsqldb.jdbc.JDBCClobClient

- All Implemented Interfaces:
    `java.sql.Clob`

      public class JDBCClobClient
      extends java.lang.Object
      implements java.sql.Clob

  A wrapper for HSQLDB ClobData objects. Instances of this class are returned by calls to ResultSet methods.
  Since:
    HSQLDB 1.9.0
  Author:
    Fred Toussi (fredt@users dot sourceforge.net)

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JDBCClobClient​(org.hsqldb.SessionInterface session, org.hsqldb.types.ClobDataID clob)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `clearUpdates()` |
    `void` | `free()` | This method frees the `Clob` object and releases the resources that it holds.
    `java.io.InputStream` | `getAsciiStream()` | Retrieves the `CLOB` value designated by this `Clob` object as an ascii stream.
    `java.io.Reader` | `getCharacterStream()` | Retrieves the `CLOB` value designated by this `Clob` object as a `java.io.Reader` object (or as a stream of characters).
    `java.io.Reader` | `getCharacterStream​(long pos, long length)` | Returns a `Reader` object that contains a partial `Clob` value, starting with the character specified by pos, which is length characters in length.
    `org.hsqldb.types.ClobDataID` | `getClob()` |
    `java.lang.String` | `getSubString​(long pos, int length)` | Retrieves a copy of the specified substring in the `CLOB` value designated by this `Clob` object.
    `boolean` | `isClosed()` |
    `long` | `length()` | Retrieves the number of characters in the `CLOB` value designated by this `Clob` object.
    `long` | `position​(java.lang.String searchstr, long start)` | Retrieves the character position at which the specified substring `searchstr` appears in the SQL `CLOB` value represented by this `Clob` object.
    `long` | `position​(java.sql.Clob searchstr, long start)` | Retrieves the character position at which the specified `Clob` object `searchstr` appears in this `Clob` object.
    `java.io.OutputStream` | `setAsciiStream​(long pos)` | Retrieves a stream to be used to write Ascii characters to the `CLOB` value that this `Clob` object represents, starting at position `pos`.
    `java.io.Writer` | `setCharacterStream​(long pos)` | Retrieves a stream to be used to write a stream of Unicode characters to the `CLOB` value that this `Clob` object represents, at position `pos`.
    `int` | `setString​(long pos, java.lang.String str)` | Writes the given Java `String` to the `CLOB` value that this `Clob` object designates at the position `pos`.
    `int` | `setString​(long pos, java.lang.String str, int offset, int len)` | Writes `len` characters of `str`, starting at character `offset`, to the `CLOB` value that this `Clob` represents.
    `void` | `setWritable​(JDBCResultSet result, int index)` |
    `void` | `truncate​(long len)` | Truncates the `CLOB` value that this `Clob` designates to have a length of `len` characters.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### JDBCClobClient

          public JDBCClobClient​(org.hsqldb.SessionInterface session,
                                org.hsqldb.types.ClobDataID clob)

  - ### Method Detail

    - #### getAsciiStream

          public java.io.InputStream getAsciiStream()
                                             throws java.sql.SQLException

      Retrieves the `CLOB` value designated by this `Clob` object as an ascii stream. The ascii stream consists of the low ordre bytes of UTF-16 characters in the clob. The question mark character is returnd for UTF-16 characters beyond the range of 8-bit ASCII.
      Specified by:
        `getAsciiStream` in interface `java.sql.Clob`
      Returns:
        a `java.io.InputStream` object containing the `CLOB` data
      Throws:
        `java.sql.SQLException` - if there is an error accessing the `CLOB` value

    - #### getCharacterStream

          public java.io.Reader getCharacterStream()
                                            throws java.sql.SQLException

      Retrieves the `CLOB` value designated by this `Clob` object as a `java.io.Reader` object (or as a stream of characters).
      Specified by:
        `getCharacterStream` in interface `java.sql.Clob`
      Returns:
        a `java.io.Reader` object containing the `CLOB` data
      Throws:
        `java.sql.SQLException` - if there is an error accessing the `CLOB` value

    - #### getSubString

          public java.lang.String getSubString​(long pos,
                                               int length)
                                        throws java.sql.SQLException

      Retrieves a copy of the specified substring in the `CLOB` value designated by this `Clob` object.
      Specified by:
        `getSubString` in interface `java.sql.Clob`
      Parameters:
        `pos` - the first character of the substring to be extracted. The first character is at position 1.
        `length` - the number of consecutive characters to be copied
      Returns:
        a `String` that is the specified substring in the `CLOB` value designated by this `Clob` object
      Throws:
        `java.sql.SQLException` - if there is an error accessing the `CLOB` value

    - #### length

          public long length()
                      throws java.sql.SQLException

      Retrieves the number of characters in the `CLOB` value designated by this `Clob` object.
      Specified by:
        `length` in interface `java.sql.Clob`
      Returns:
        length of the `CLOB` in characters
      Throws:
        `java.sql.SQLException` - if there is an error accessing the length of the `CLOB` value

    - #### position

          public long position​(java.lang.String searchstr,
                               long start)
                        throws java.sql.SQLException

      Retrieves the character position at which the specified substring `searchstr` appears in the SQL `CLOB` value represented by this `Clob` object.
      Specified by:
        `position` in interface `java.sql.Clob`
      Parameters:
        `searchstr` - the substring for which to search
        `start` - the position at which to begin searching; the first position is 1
      Returns:
        the position at which the substring appears or -1 if it is not present; the first position is 1
      Throws:
        `java.sql.SQLException` - if there is an error accessing the `CLOB` value

    - #### position

          public long position​(java.sql.Clob searchstr,
                               long start)
                        throws java.sql.SQLException

      Retrieves the character position at which the specified `Clob` object `searchstr` appears in this `Clob` object.
      Specified by:
        `position` in interface `java.sql.Clob`
      Parameters:
        `searchstr` - the `Clob` object for which to search
        `start` - the position at which to begin searching; the first position is 1
      Returns:
        the position at which the `Clob` object appears or -1 if it is not present; the first position is 1
      Throws:
        `java.sql.SQLException` - if there is an error accessing the `CLOB` value

    - #### setAsciiStream

          public java.io.OutputStream setAsciiStream​(long pos)
                                              throws java.sql.SQLException

      Retrieves a stream to be used to write Ascii characters to the `CLOB` value that this `Clob` object represents, starting at position `pos`. The bytes written to the OutputStream are stored verbatim in the clob as the low order bytes of UTF-16 characters.
      Specified by:
        `setAsciiStream` in interface `java.sql.Clob`
      Parameters:
        `pos` - the position at which to start writing to this `CLOB` object
      Returns:
        the stream to which ASCII encoded characters can be written
      Throws:
        `java.sql.SQLException` - if there is an error accessing the `CLOB` value

    - #### setCharacterStream

          public java.io.Writer setCharacterStream​(long pos)
                                            throws java.sql.SQLException

      Retrieves a stream to be used to write a stream of Unicode characters to the `CLOB` value that this `Clob` object represents, at position `pos`.
      Specified by:
        `setCharacterStream` in interface `java.sql.Clob`
      Parameters:
        `pos` - the position at which to start writing to the `CLOB` value
      Returns:
        a stream to which Unicode encoded characters can be written
      Throws:
        `java.sql.SQLException` - if there is an error accessing the `CLOB` value

    - #### setString

          public int setString​(long pos,
                               java.lang.String str)
                        throws java.sql.SQLException

      Writes the given Java `String` to the `CLOB` value that this `Clob` object designates at the position `pos`.
      Specified by:
        `setString` in interface `java.sql.Clob`
      Parameters:
        `pos` - the position at which to start writing to the `CLOB` value that this `Clob` object represents
        `str` - the string to be written to the `CLOB` value that this `Clob` designates
      Returns:
        the number of characters written
      Throws:
        `java.sql.SQLException` - if there is an error accessing the `CLOB` value

    - #### setString

          public int setString​(long pos,
                               java.lang.String str,
                               int offset,
                               int len)
                        throws java.sql.SQLException

      Writes `len` characters of `str`, starting at character `offset`, to the `CLOB` value that this `Clob` represents.
      Specified by:
        `setString` in interface `java.sql.Clob`
      Parameters:
        `pos` - the position at which to start writing to this `CLOB` object
        `str` - the string to be written to the `CLOB` value that this `Clob` object represents
        `offset` - the offset into `str` to start reading the characters to be written
        `len` - the number of characters to be written
      Returns:
        the number of characters written
      Throws:
        `java.sql.SQLException` - if there is an error accessing the `CLOB` value

    - #### truncate

          public void truncate​(long len)
                        throws java.sql.SQLException

      Truncates the `CLOB` value that this `Clob` designates to have a length of `len` characters.
      Specified by:
        `truncate` in interface `java.sql.Clob`
      Parameters:
        `len` - the length, in bytes, to which the `CLOB` value should be truncated
      Throws:
        `java.sql.SQLException` - if there is an error accessing the `CLOB` value

    - #### free

          public void free()
                    throws java.sql.SQLException

      This method frees the `Clob` object and releases the resources that it holds. The object is invalid once the `free` method is called.

      After `free` has been called, any attempt to invoke a method other than `free` will result in a `SQLException` being thrown. If `free` is called multiple times, the subsequent calls to `free` are treated as a no-op.

      Specified by:
        `free` in interface `java.sql.Clob`
      Throws:
        `java.sql.SQLException` - if an error occurs releasing the Clob's resources
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getCharacterStream

          public java.io.Reader getCharacterStream​(long pos,
                                                   long length)
                                            throws java.sql.SQLException

      Returns a `Reader` object that contains a partial `Clob` value, starting with the character specified by pos, which is length characters in length.
      Specified by:
        `getCharacterStream` in interface `java.sql.Clob`
      Parameters:
        `pos` - the offset to the first character of the partial value to be retrieved. The first character in the Clob is at position 1.
        `length` - the length in characters of the partial value to be retrieved.
      Returns:
        `Reader` through which the partial `Clob` value can be read.
      Throws:
        `java.sql.SQLException` - if pos is less than 1 or if pos is greater than the number of characters in the `Clob` or if pos + length is greater than the number of characters in the `Clob`
        `java.sql.SQLFeatureNotSupportedException` - if the JDBC driver does not support this method
      Since:
        JDK 1.6, HSQLDB 2.0

    - #### getClob

          public org.hsqldb.types.ClobDataID getClob()

    - #### isClosed

          public boolean isClosed()

    - #### setWritable

          public void setWritable​(JDBCResultSet result,
                                  int index)

    - #### clearUpdates

          public void clearUpdates()