< prev index next >

src/java.sql/share/classes/java/sql/Clob.java

Print this page

        

*** 27,348 **** import java.io.Reader; /** * The mapping in the Java&trade; programming language ! * for the SQL <code>CLOB</code> type. ! * An SQL <code>CLOB</code> is a built-in type * that stores a Character Large Object as a column value in a row of * a database table. ! * By default drivers implement a <code>Clob</code> object using an SQL ! * <code>locator(CLOB)</code>, which means that a <code>Clob</code> object ! * contains a logical pointer to the SQL <code>CLOB</code> data rather than ! * the data itself. A <code>Clob</code> object is valid for the duration * of the transaction in which it was created. ! * <P>The <code>Clob</code> interface provides methods for getting the ! * length of an SQL <code>CLOB</code> (Character Large Object) value, ! * for materializing a <code>CLOB</code> value on the client, and for ! * searching for a substring or <code>CLOB</code> object within a ! * <code>CLOB</code> value. * Methods in the interfaces {@link ResultSet}, * {@link CallableStatement}, and {@link PreparedStatement}, such as ! * <code>getClob</code> and <code>setClob</code> allow a programmer to ! * access an SQL <code>CLOB</code> value. In addition, this interface ! * has methods for updating a <code>CLOB</code> value. * <p> ! * All methods on the <code>Clob</code> interface must be fully implemented if the ! * JDBC driver supports the data type. * * @since 1.2 */ public interface Clob { /** * Retrieves the number of characters ! * in the <code>CLOB</code> value ! * designated by this <code>Clob</code> object. * ! * @return length of the <code>CLOB</code> in characters * @exception SQLException if there is an error accessing the ! * length of the <code>CLOB</code> value ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @since 1.2 */ long length() throws SQLException; /** * Retrieves a copy of the specified substring ! * in the <code>CLOB</code> value ! * designated by this <code>Clob</code> object. * The substring begins at position ! * <code>pos</code> and has up to <code>length</code> consecutive * characters. * * @param pos the first character of the substring to be extracted. * The first character is at position 1. * @param length the number of consecutive characters to be copied; * the value for length must be 0 or greater ! * @return a <code>String</code> that is the specified substring in ! * the <code>CLOB</code> value designated by this <code>Clob</code> object * @exception SQLException if there is an error accessing the ! * <code>CLOB</code> value; if pos is less than 1 or length is * less than 0 ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @since 1.2 */ String getSubString(long pos, int length) throws SQLException; /** ! * Retrieves the <code>CLOB</code> value designated by this <code>Clob</code> ! * object as a <code>java.io.Reader</code> object (or as a stream of * characters). * ! * @return a <code>java.io.Reader</code> object containing the ! * <code>CLOB</code> data * @exception SQLException if there is an error accessing the ! * <code>CLOB</code> value ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @see #setCharacterStream * @since 1.2 */ java.io.Reader getCharacterStream() throws SQLException; /** ! * Retrieves the <code>CLOB</code> value designated by this <code>Clob</code> * object as an ascii stream. * ! * @return a <code>java.io.InputStream</code> object containing the ! * <code>CLOB</code> data * @exception SQLException if there is an error accessing the ! * <code>CLOB</code> value ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @see #setAsciiStream * @since 1.2 */ java.io.InputStream getAsciiStream() throws SQLException; /** * Retrieves the character position at which the specified substring ! * <code>searchstr</code> appears in the SQL <code>CLOB</code> value ! * represented by this <code>Clob</code> object. The search ! * begins at position <code>start</code>. * * @param searchstr the substring for which to search ! * @param start the position at which to begin searching; the first position ! * is 1 * @return the position at which the substring appears or -1 if it is not * present; the first position is 1 * @exception SQLException if there is an error accessing the ! * <code>CLOB</code> value or if pos is less than 1 ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @since 1.2 */ long position(String searchstr, long start) throws SQLException; /** * Retrieves the character position at which the specified ! * <code>Clob</code> object <code>searchstr</code> appears in this ! * <code>Clob</code> object. The search begins at position ! * <code>start</code>. * ! * @param searchstr the <code>Clob</code> object for which to search * @param start the position at which to begin searching; the first * position is 1 ! * @return the position at which the <code>Clob</code> object appears * or -1 if it is not present; the first position is 1 * @exception SQLException if there is an error accessing the ! * <code>CLOB</code> value or if start is less than 1 ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @since 1.2 */ long position(Clob searchstr, long start) throws SQLException; //---------------------------- jdbc 3.0 ----------------------------------- /** ! * Writes the given Java <code>String</code> to the <code>CLOB</code> ! * value that this <code>Clob</code> object designates at the position ! * <code>pos</code>. The string will overwrite the existing characters ! * in the <code>Clob</code> object starting at the position ! * <code>pos</code>. If the end of the <code>Clob</code> value is reached ! * while writing the given string, then the length of the <code>Clob</code> * value will be increased to accommodate the extra characters. * <p> ! * <b>Note:</b> If the value specified for <code>pos</code> ! * is greater then the length+1 of the <code>CLOB</code> value then the ! * behavior is undefined. Some JDBC drivers may throw a ! * <code>SQLException</code> while other drivers may support this * operation. * ! * @param pos the position at which to start writing to the <code>CLOB</code> ! * value that this <code>Clob</code> object represents; ! * The first position is 1 ! * @param str the string to be written to the <code>CLOB</code> ! * value that this <code>Clob</code> designates * @return the number of characters written * @exception SQLException if there is an error accessing the ! * <code>CLOB</code> value or if pos is less than 1 * ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @since 1.4 */ int setString(long pos, String str) throws SQLException; /** ! * Writes <code>len</code> characters of <code>str</code>, starting ! * at character <code>offset</code>, to the <code>CLOB</code> value ! * that this <code>Clob</code> represents. The string will overwrite the existing characters ! * in the <code>Clob</code> object starting at the position ! * <code>pos</code>. If the end of the <code>Clob</code> value is reached ! * while writing the given string, then the length of the <code>Clob</code> * value will be increased to accommodate the extra characters. * <p> ! * <b>Note:</b> If the value specified for <code>pos</code> ! * is greater then the length+1 of the <code>CLOB</code> value then the ! * behavior is undefined. Some JDBC drivers may throw a ! * <code>SQLException</code> while other drivers may support this * operation. * * @param pos the position at which to start writing to this ! * <code>CLOB</code> object; The first position is 1 ! * @param str the string to be written to the <code>CLOB</code> ! * value that this <code>Clob</code> object represents ! * @param offset the offset into <code>str</code> to start reading * the characters to be written * @param len the number of characters to be written * @return the number of characters written * @exception SQLException if there is an error accessing the ! * <code>CLOB</code> value or if pos is less than 1 * ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @since 1.4 */ int setString(long pos, String str, int offset, int len) throws SQLException; /** * Retrieves a stream to be used to write Ascii characters to the ! * <code>CLOB</code> value that this <code>Clob</code> object represents, ! * starting at position <code>pos</code>. Characters written to the stream * will overwrite the existing characters ! * in the <code>Clob</code> object starting at the position ! * <code>pos</code>. If the end of the <code>Clob</code> value is reached ! * while writing characters to the stream, then the length of the <code>Clob</code> * value will be increased to accommodate the extra characters. * <p> ! * <b>Note:</b> If the value specified for <code>pos</code> ! * is greater then the length+1 of the <code>CLOB</code> value then the ! * behavior is undefined. Some JDBC drivers may throw a ! * <code>SQLException</code> while other drivers may support this * operation. * * @param pos the position at which to start writing to this ! * <code>CLOB</code> object; The first position is 1 * @return the stream to which ASCII encoded characters can be written * @exception SQLException if there is an error accessing the ! * <code>CLOB</code> value or if pos is less than 1 ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @see #getAsciiStream * * @since 1.4 */ java.io.OutputStream setAsciiStream(long pos) throws SQLException; /** * Retrieves a stream to be used to write a stream of Unicode characters ! * to the <code>CLOB</code> value that this <code>Clob</code> object ! * represents, at position <code>pos</code>. Characters written to the stream * will overwrite the existing characters ! * in the <code>Clob</code> object starting at the position ! * <code>pos</code>. If the end of the <code>Clob</code> value is reached ! * while writing characters to the stream, then the length of the <code>Clob</code> * value will be increased to accommodate the extra characters. * <p> ! * <b>Note:</b> If the value specified for <code>pos</code> ! * is greater then the length+1 of the <code>CLOB</code> value then the ! * behavior is undefined. Some JDBC drivers may throw a ! * <code>SQLException</code> while other drivers may support this * operation. * * @param pos the position at which to start writing to the ! * <code>CLOB</code> value; The first position is 1 * * @return a stream to which Unicode encoded characters can be written * @exception SQLException if there is an error accessing the ! * <code>CLOB</code> value or if pos is less than 1 ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @see #getCharacterStream * * @since 1.4 */ java.io.Writer setCharacterStream(long pos) throws SQLException; /** ! * Truncates the <code>CLOB</code> value that this <code>Clob</code> ! * designates to have a length of <code>len</code> * characters. * <p> ! * <b>Note:</b> If the value specified for <code>pos</code> ! * is greater then the length+1 of the <code>CLOB</code> value then the ! * behavior is undefined. Some JDBC drivers may throw a ! * <code>SQLException</code> while other drivers may support this * operation. * ! * @param len the length, in characters, to which the <code>CLOB</code> value * should be truncated * @exception SQLException if there is an error accessing the ! * <code>CLOB</code> value or if len is less than 0 * ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @since 1.4 */ void truncate(long len) throws SQLException; /** ! * This method releases the resources that the <code>Clob</code> object ! * holds. The object is invalid once the <code>free</code> method * is called. * <p> ! * After <code>free</code> has been called, any attempt to invoke a ! * method other than <code>free</code> will result in a <code>SQLException</code> ! * being thrown. If <code>free</code> is called multiple times, the subsequent ! * calls to <code>free</code> are treated as a no-op. * * @throws SQLException if an error occurs releasing * the Clob's resources * ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @since 1.6 */ void free() throws SQLException; /** ! * Returns a <code>Reader</code> object that contains a partial <code>Clob</code> value, starting ! * with the character specified by pos, which is length characters in length. * * @param pos the offset to the first character of the partial value to * be retrieved. The first character in the Clob is at position 1. * @param length the length in characters of the partial value to be retrieved. ! * @return <code>Reader</code> through which the partial <code>Clob</code> value can be read. ! * @throws SQLException if pos is less than 1 or if pos is greater than the number of ! * characters in the <code>Clob</code> or if pos + length is greater than the number of ! * characters in the <code>Clob</code> * ! * @exception SQLFeatureNotSupportedException if the JDBC driver does not support ! * this method * @since 1.6 */ Reader getCharacterStream(long pos, long length) throws SQLException; } --- 27,353 ---- import java.io.Reader; /** * The mapping in the Java&trade; programming language ! * for the SQL {@code CLOB} type. ! * An SQL {@code CLOB} is a built-in type * that stores a Character Large Object as a column value in a row of * a database table. ! * By default drivers implement a {@code Clob} object using an SQL ! * {@code locator(CLOB)}, which means that a {@code Clob} object ! * contains a logical pointer to the SQL {@code CLOB} data rather than ! * the data itself. A {@code Clob} object is valid for the duration * of the transaction in which it was created. ! * <P>The {@code Clob} interface provides methods for getting the ! * length of an SQL {@code CLOB} (Character Large Object) value, ! * for materializing a {@code CLOB} value on the client, and for ! * searching for a substring or {@code CLOB} object within a ! * {@code CLOB} value. * Methods in the interfaces {@link ResultSet}, * {@link CallableStatement}, and {@link PreparedStatement}, such as ! * {@code getClob} and {@code setClob} allow a programmer to ! * access an SQL {@code CLOB} value. In addition, this interface ! * has methods for updating a {@code CLOB} value. * <p> ! * All methods on the {@code Clob} interface must be ! * fully implemented if the JDBC driver supports the data type. * * @since 1.2 */ public interface Clob { /** * Retrieves the number of characters ! * in the {@code CLOB} value ! * designated by this {@code Clob} object. * ! * @return length of the {@code CLOB} in characters * @exception SQLException if there is an error accessing the ! * length of the {@code CLOB} value ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @since 1.2 */ long length() throws SQLException; /** * Retrieves a copy of the specified substring ! * in the {@code CLOB} value ! * designated by this {@code Clob} object. * The substring begins at position ! * {@code pos} and has up to {@code length} consecutive * characters. * * @param pos the first character of the substring to be extracted. * The first character is at position 1. * @param length the number of consecutive characters to be copied; * the value for length must be 0 or greater ! * @return a {@code String} that is the specified substring in ! * the {@code CLOB} value designated by this {@code Clob} object * @exception SQLException if there is an error accessing the ! * {@code CLOB} value; if pos is less than 1 or length is * less than 0 ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @since 1.2 */ String getSubString(long pos, int length) throws SQLException; /** ! * Retrieves the {@code CLOB} value designated by this {@code Clob} ! * object as a {@code java.io.Reader} object (or as a stream of * characters). * ! * @return a {@code java.io.Reader} object containing the ! * {@code CLOB} data * @exception SQLException if there is an error accessing the ! * {@code CLOB} value ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @see #setCharacterStream * @since 1.2 */ java.io.Reader getCharacterStream() throws SQLException; /** ! * Retrieves the {@code CLOB} value designated by this {@code Clob} * object as an ascii stream. * ! * @return a {@code java.io.InputStream} object containing the ! * {@code CLOB} data * @exception SQLException if there is an error accessing the ! * {@code CLOB} value ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @see #setAsciiStream * @since 1.2 */ java.io.InputStream getAsciiStream() throws SQLException; /** * Retrieves the character position at which the specified substring ! * {@code searchstr} appears in the SQL {@code CLOB} value ! * represented by this {@code Clob} object. The search ! * begins at position {@code start}. * * @param searchstr the substring for which to search ! * @param start the position at which to begin searching; ! * the first position is 1 * @return the position at which the substring appears or -1 if it is not * present; the first position is 1 * @exception SQLException if there is an error accessing the ! * {@code CLOB} value or if pos is less than 1 ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @since 1.2 */ long position(String searchstr, long start) throws SQLException; /** * Retrieves the character position at which the specified ! * {@code Clob} object {@code searchstr} appears in this ! * {@code Clob} object. The search begins at position ! * {@code start}. * ! * @param searchstr the {@code Clob} object for which to search * @param start the position at which to begin searching; the first * position is 1 ! * @return the position at which the {@code Clob} object appears * or -1 if it is not present; the first position is 1 * @exception SQLException if there is an error accessing the ! * {@code CLOB} value or if start is less than 1 ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @since 1.2 */ long position(Clob searchstr, long start) throws SQLException; //---------------------------- jdbc 3.0 ----------------------------------- /** ! * Writes the given Java {@code String} to the {@code CLOB} ! * value that this {@code Clob} object designates at the position ! * {@code pos}. The string will overwrite the existing characters ! * in the {@code Clob} object starting at the position ! * {@code pos}. If the end of the {@code Clob} value is reached ! * while writing the given string, then the length of the {@code Clob} * value will be increased to accommodate the extra characters. * <p> ! * <b>Note:</b> If the value specified for {@code pos} ! * is greater than the length+1 of the {@code CLOB} value then the ! * behavior is undefined. Some JDBC drivers may throw an ! * {@code SQLException} while other drivers may support this * operation. * ! * @param pos the position at which to start writing to the {@code CLOB} ! * value that this {@code Clob} object represents; ! * the first position is 1. ! * @param str the string to be written to the {@code CLOB} ! * value that this {@code Clob} designates * @return the number of characters written * @exception SQLException if there is an error accessing the ! * {@code CLOB} value or if pos is less than 1 * ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @since 1.4 */ int setString(long pos, String str) throws SQLException; /** ! * Writes {@code len} characters of {@code str}, starting ! * at character {@code offset}, to the {@code CLOB} value ! * that this {@code Clob} represents. ! * The string will overwrite the existing characters ! * in the {@code Clob} object starting at the position ! * {@code pos}. If the end of the {@code Clob} value is reached ! * while writing the given string, then the length of the {@code Clob} * value will be increased to accommodate the extra characters. * <p> ! * <b>Note:</b> If the value specified for {@code pos} ! * is greater than the length+1 of the {@code CLOB} value then the ! * behavior is undefined. Some JDBC drivers may throw an ! * {@code SQLException} while other drivers may support this * operation. * * @param pos the position at which to start writing to this ! * {@code CLOB} object; The first position is 1 ! * @param str the string to be written to the {@code CLOB} ! * value that this {@code Clob} object represents ! * @param offset the offset into {@code str} to start reading * the characters to be written * @param len the number of characters to be written * @return the number of characters written * @exception SQLException if there is an error accessing the ! * {@code CLOB} value or if pos is less than 1 * ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @since 1.4 */ int setString(long pos, String str, int offset, int len) throws SQLException; /** * Retrieves a stream to be used to write Ascii characters to the ! * {@code CLOB} value that this {@code Clob} object represents, ! * starting at position {@code pos}. Characters written to the stream * will overwrite the existing characters ! * in the {@code Clob} object starting at the position ! * {@code pos}. If the end of the {@code Clob} value is reached ! * while writing characters to the stream, then the length of the {@code Clob} * value will be increased to accommodate the extra characters. * <p> ! * <b>Note:</b> If the value specified for {@code pos} ! * is greater than the length+1 of the {@code CLOB} value then the ! * behavior is undefined. Some JDBC drivers may throw an ! * {@code SQLException} while other drivers may support this * operation. * * @param pos the position at which to start writing to this ! * {@code CLOB} object; The first position is 1 * @return the stream to which ASCII encoded characters can be written * @exception SQLException if there is an error accessing the ! * {@code CLOB} value or if pos is less than 1 ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @see #getAsciiStream * * @since 1.4 */ java.io.OutputStream setAsciiStream(long pos) throws SQLException; /** * Retrieves a stream to be used to write a stream of Unicode characters ! * to the {@code CLOB} value that this {@code Clob} object ! * represents, at position {@code pos}. Characters written to the stream * will overwrite the existing characters ! * in the {@code Clob} object starting at the position ! * {@code pos}. If the end of the {@code Clob} value is reached ! * while writing characters to the stream, then the length of the {@code Clob} * value will be increased to accommodate the extra characters. * <p> ! * <b>Note:</b> If the value specified for {@code pos} ! * is greater than the length+1 of the {@code CLOB} value then the ! * behavior is undefined. Some JDBC drivers may throw an ! * {@code SQLException} while other drivers may support this * operation. * * @param pos the position at which to start writing to the ! * {@code CLOB} value; The first position is 1 * * @return a stream to which Unicode encoded characters can be written * @exception SQLException if there is an error accessing the ! * {@code CLOB} value or if pos is less than 1 ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @see #getCharacterStream * * @since 1.4 */ java.io.Writer setCharacterStream(long pos) throws SQLException; /** ! * Truncates the {@code CLOB} value that this {@code Clob} ! * designates to have a length of {@code len} * characters. * <p> ! * <b>Note:</b> If the value specified for {@code pos} ! * is greater than the length+1 of the {@code CLOB} value then the ! * behavior is undefined. Some JDBC drivers may throw an ! * {@code SQLException} while other drivers may support this * operation. * ! * @param len the length, in characters, to which the {@code CLOB} value * should be truncated * @exception SQLException if there is an error accessing the ! * {@code CLOB} value or if len is less than 0 * ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @since 1.4 */ void truncate(long len) throws SQLException; /** ! * This method releases the resources that the {@code Clob} object ! * holds. The object is invalid once the {@code free} method * is called. * <p> ! * After {@code free} has been called, any attempt to invoke a ! * method other than {@code free} will result in a {@code SQLException} ! * being thrown. If {@code free} is called multiple times, the subsequent ! * calls to {@code free} are treated as a no-op. * * @throws SQLException if an error occurs releasing * the Clob's resources * ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @since 1.6 */ void free() throws SQLException; /** ! * Returns a {@code Reader} object that contains ! * a partial {@code Clob} value, starting with the character ! * specified by pos, which is length characters in length. * * @param pos the offset to the first character of the partial value to * be retrieved. The first character in the Clob is at position 1. * @param length the length in characters of the partial value to be retrieved. ! * @return {@code Reader} through which ! * the partial {@code Clob} value can be read. ! * @throws SQLException if pos is less than 1; ! * or if pos is greater than the number of characters ! * in the {@code Clob}; ! * or if pos + length is greater than the number of ! * characters in the {@code Clob} * ! * @exception SQLFeatureNotSupportedException if the JDBC driver ! * does not support this method * @since 1.6 */ Reader getCharacterStream(long pos, long length) throws SQLException; }
< prev index next >