Module java.sql
Package java.sql

Interface Clob

所有已知的子接口:
NClob
所有已知的实现类:
SerialClob

public interface Clob
Java编程语言中对SQL CLOB 类型的映射。SQL CLOB 是一个内置类型,将大字符对象作为数据库表中行的列值存储。默认情况下,驱动程序使用SQL locator(CLOB) 实现一个 Clob 对象,这意味着 Clob 对象包含对SQL CLOB 数据的逻辑指针,而不是数据本身。 Clob 对象在创建它的事务期间是有效的。

Clob 接口提供了获取SQL CLOB(大字符对象)值长度的方法,将 CLOB 值在客户端上实例化的方法,以及在 CLOB 值中搜索子字符串或 CLOB 对象的方法。接口中的方法,如 ResultSetCallableStatementPreparedStatement 中的 getClobsetClob 允许程序员访问SQL CLOB 值。此外,该接口还具有用于更新 CLOB 值的方法。

如果JDBC驱动程序支持该数据类型,则 Clob 接口上的所有方法必须完全实现。

自版本:
1.2
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    free()
    该方法释放 Clob 对象持有的资源。
    检索由此 Clob 对象指定的 CLOB 值作为ASCII流。
    检索由此 Clob 对象指定的 CLOB 值作为 java.io.Reader 对象(或作为字符流)。
    getCharacterStream(long pos, long length)
    返回一个包含部分 Clob 值的 Reader 对象,从指定的字符位置 pos 开始,长度为 length 个字符。
    getSubString(long pos, int length)
    检索由此 Clob 对象指定的 CLOB 值中指定子字符串的副本。
    long
    length()
    检索由此 Clob 对象指定的 CLOB 值中的字符数。
    long
    position(String searchstr, long start)
    检索由此 Clob 对象表示的SQL CLOB 值中指定子字符串 searchstr 出现的字符位置。
    long
    position(Clob searchstr, long start)
    检索由此 Clob 对象中指定的 Clob 对象 searchstr 出现的字符位置。
    setAsciiStream(long pos)
    检索一个流,用于将Ascii字符写入此 Clob 对象表示的 CLOB 值,从位置 pos 开始。
    setCharacterStream(long pos)
    检索一个流,用于将Unicode字符流写入此 Clob 对象表示的 CLOB 值,从位置 pos 开始。
    int
    setString(long pos, String str)
    将给定的Java String 写入此 Clob 对象指定的 CLOB 值,从位置 pos 开始。
    int
    setString(long pos, String str, int offset, int len)
    str 中从字符 offset 开始的 len 个字符写入此 Clob 表示的 CLOB 值。
    void
    truncate(long len)
    将此 Clob 指定的 CLOB 值截断为长度为 len 个字符。
  • Method Details

    • length

      long length() throws SQLException
      检索由此 Clob 对象指定的 CLOB 值中的字符数。
      返回:
      字符数中的 CLOB 长度
      抛出:
      SQLException - 如果访问 CLOB 值的长度时出现错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • getSubString

      String getSubString(long pos, int length) throws SQLException
      检索由此 Clob 对象指定的 CLOB 值中指定子字符串的副本。子字符串从位置 pos 开始,最多具有 length 个连续字符。
      参数:
      pos - 要提取的子字符串的第一个字符。第一个字符位于位置 1。
      length - 要复制的连续字符数;length 的值必须为 0 或更大
      返回:
      由此 Clob 对象指定的 CLOB 值中指定子字符串的 String
      抛出:
      SQLException - 如果访问 CLOB 值时出现错误;如果 pos 小于 1 或 length 小于 0
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • getCharacterStream

      Reader getCharacterStream() throws SQLException
      检索由此 Clob 对象指定的 CLOB 值作为 java.io.Reader 对象(或作为字符流)。
      返回:
      包含 CLOB 数据的 java.io.Reader 对象
      抛出:
      SQLException - 如果访问 CLOB 值时出现错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
      参见:
    • getAsciiStream

      InputStream getAsciiStream() throws SQLException
      检索由此 Clob 对象指定的 CLOB 值作为ASCII流。
      返回:
      包含 CLOB 数据的 java.io.InputStream 对象
      抛出:
      SQLException - 如果访问 CLOB 值时出现错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
      参见:
    • position

      long position(String searchstr, long start) throws SQLException
      检索由此 Clob 对象表示的SQL CLOB 值中指定子字符串 searchstr 出现的字符位置。搜索从位置 start 开始。
      参数:
      searchstr - 要搜索的子字符串
      start - 开始搜索的位置;第一个位置为 1
      返回:
      子字符串出现的位置,如果不存在则为 -1;第一个位置为 1
      抛出:
      SQLException - 如果访问 CLOB 值或 pos 小于 1 时出现错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • position

      long position(Clob searchstr, long start) throws SQLException
      检索由此 Clob 对象表示的 CLOB 值中指定的 Clob 对象 searchstr 出现的字符位置。搜索从位置 start 开始。
      参数:
      searchstr - 要搜索的 Clob 对象
      start - 开始搜索的位置;第一个位置为 1
      返回:
      Clob 对象出现的位置,如果不存在则为 -1;第一个位置为 1
      抛出:
      SQLException - 如果访问 CLOB 值或 start 小于 1 时出现错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.2
    • setString

      int setString(long pos, String str) throws SQLException
      将给定的Java String 写入此 Clob 对象指定的 CLOB 值,从位置 pos 开始。字符串将覆盖从位置 pos 开始的 Clob 对象中的现有字符。如果在写入给定字符串时达到 Clob 值的末尾,则 Clob 值的长度将增加以容纳额外字符。

      注意: 如果为 pos 指定的值大于 CLOB 值的长度+1,则行为是未定义的。某些JDBC驱动程序可能会抛出 SQLException,而其他驱动程序可能支持此操作。

      参数:
      pos - 要开始写入此 Clob 对象表示的 CLOB 值的位置;第一个位置为 1。
      str - 要写入此 Clob 指定的 CLOB 值的字符串
      返回:
      写入的字符数
      抛出:
      SQLException - 如果访问 CLOB 值时出现错误或 pos 小于 1
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.4
    • setString

      int setString(long pos, String str, int offset, int len) throws SQLException
      Writes len characters of str, starting at character offset, to the CLOB value that this Clob represents. The string will overwrite the existing characters in the Clob object starting at the position pos. If the end of the Clob value is reached while writing the given string, then the length of the Clob value will be increased to accommodate the extra characters.

      注意: 如果为pos指定的值大于CLOB值的长度+1,则行为是未定义的。一些JDBC驱动程序可能会抛出SQLException,而其他驱动程序可能支持此操作。

      参数:
      pos - 开始写入此CLOB对象的位置;第一个位置为1
      str - 要写入此Clob对象表示的CLOB值的字符串
      offset - 开始读取要写入的字符的str的偏移量
      len - 要写入的字符数
      返回:
      写入的字符数
      抛出:
      SQLException - 如果访问CLOB值时出现错误,或者pos小于1
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.4
    • setAsciiStream

      OutputStream setAsciiStream(long pos) throws SQLException
      检索一个流,用于向此Clob对象表示的CLOB值写入Ascii字符,从位置pos开始。写入流的字符将覆盖Clob对象中从位置pos开始的现有字符。如果在向流写入字符时到达Clob值的末尾,则Clob值的长度将增加以容纳额外的字符。

      注意: 如果为pos指定的值大于CLOB值的长度+1,则行为是未定义的。一些JDBC驱动程序可能会抛出SQLException,而其他驱动程序可能支持此操作。

      参数:
      pos - 开始向此CLOB对象写入的位置;第一个位置为1
      返回:
      可写入ASCII编码字符的流
      抛出:
      SQLException - 如果访问CLOB值时出现错误,或者pos小于1
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.4
      另请参阅:
    • setCharacterStream

      Writer setCharacterStream(long pos) throws SQLException
      检索一个流,用于向此Clob对象表示的CLOB值写入Unicode字符流,从位置pos开始。写入流的字符将覆盖Clob对象中从位置pos开始的现有字符。如果在向流写入字符时到达Clob值的末尾,则Clob值的长度将增加以容纳额外的字符。

      注意: 如果为pos指定的值大于CLOB值的长度+1,则行为是未定义的。一些JDBC驱动程序可能会抛出SQLException,而其他驱动程序可能支持此操作。

      参数:
      pos - 开始向CLOB值写入的位置;第一个位置为1
      返回:
      可写入Unicode编码字符的流
      抛出:
      SQLException - 如果访问CLOB值时出现错误,或者pos小于1
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.4
      另请参阅:
    • truncate

      void truncate(long len) throws SQLException
      将此Clob指定的CLOB值截断为len个字符的长度。

      注意: 如果为pos指定的值大于CLOB值的长度+1,则行为是未定义的。一些JDBC驱动程序可能会抛出SQLException,而其他驱动程序可能支持此操作。

      参数:
      len - 应将CLOB值截断为的字符长度
      抛出:
      SQLException - 如果访问CLOB值时出现错误,或者len小于0
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.4
    • free

      void free() throws SQLException
      此方法释放Clob对象持有的资源。一旦调用free方法,对象就无效了。

      调用free后,任何尝试调用free以外的方法都将导致抛出SQLException。如果多次调用free,则后续调用free将被视为无操作。

      抛出:
      SQLException - 如果释放Clob的资源时发生错误
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.6
    • getCharacterStream

      Reader getCharacterStream(long pos, long length) throws SQLException
      返回一个Reader对象,其中包含从指定为pos的字符开始的部分Clob值,长度为length个字符。
      参数:
      pos - 要检索的部分值的第一个字符的偏移量。Clob中的第一个字符位于位置1。
      length - 要检索的部分值的字符长度。
      返回:
      通过该Reader可以读取部分Clob值。
      抛出:
      SQLException - 如果pos小于1;或者如果pos大于Clob中的字符数;或者如果pos + length大于Clob中的字符数
      SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
      自版本:
      1.6