Module  java.sql
软件包  java.sql

Interface Clob

  • All Known Subinterfaces:
    NClob
    所有已知实现类:
    SerialClob


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

    Clob接口提供了获取SQL CLOB (字符大对象)值的长度的方法,用于在客户端上实现CLOB值,以及在CLOB值内搜索子字符串或CLOB对象。 方法在接口ResultSetCallableStatement ,并PreparedStatement ,如getClobsetClob允许编程人员访问SQL CLOB值。 此外,该界面还具有更新CLOB值的方法。

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

    从以下版本开始:
    1.2
    • 方法摘要

      所有方法  接口方法  抽象方法 
      Modifier and Type 方法 描述
      void free​()
      此方法释放 Clob对象所持有的资源。
      InputStream getAsciiStream​()
      检索由该 Clob对象指定的 CLOB值作为ascii流。
      Reader getCharacterStream​()
      检索 Clob对象作为 java.io.Reader对象(或作为字符流)指定的 CLOB值。
      Reader getCharacterStream​(long pos, long length)
      返回一个包含部分 Clob值的 Reader对象,以pos指定的字符开头,长度字符为长度。
      String 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的字符位置。
      OutputStream setAsciiStream​(long pos)
      检索流用于写入ASCII字符的 CLOB值,这 Clob对象表示,起始于位置 pos
      Writer setCharacterStream​(long pos)
      检索流用于写入的Unicode字符流的 CLOB值,这 Clob对象表示,在位置 pos
      int setString​(long pos, String str)
      写入给定的Java StringCLOB值,这 Clob对象表示在该位置 pos
      int setString​(long pos, String str, int offset, int len)
      写入 len字符的 str ,从字符 offset开始,以 Clob表示的 CLOB值。
      void truncate​(long len)
      截断这个 Clob指定的长度为 len字符的 CLOB值。
    • 方法详细信息

      • 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始于位置pos ,最多可连续length个字符。
        参数
        pos - 要提取的子字符串的第一个字符。 第一个字符在位置1。
        length - 要复制的连续字符数; 长度的值必须为0或更大
        结果
        一个 StringClob对象中指定的 CLOB值中指定的子字符串
        异常
        SQLException - 访问CLOB值是否有错误; 如果pos小于1或长度小于0
        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对象searchstr的字符位置。 搜索从位置start开始。
        参数
        searchstr - 要搜索的 Clob对象
        start - 开始搜索的位置; 第一名是1
        结果
        Clob对象出现的位置,如果不存在则为-1。 第一名是1
        异常
        SQLException - 如果存在访问 CLOB值的错误,或者如果启动小于1
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.2
      • setString

        int setString​(long pos,
                      String str)
               throws SQLException
        写入给定的Java StringCLOB值,这Clob对象表示在该位置pos 字符串将覆盖在现有的字符Clob在位置对象起始pos 如果在写入给定的字符串时达到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
        写入len字符的str ,从字符offset开始,以Clob表示的CLOB值。 字符串将覆盖从位置pos开始的Clob对象中的现有字符。 如果在写入给定的字符串时达到了Clob值的结尾,那么Clob值将被增加以容纳额外的字符。

        注意:如果为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
        检索流用于写入ASCII字符的CLOB值,这Clob对象表示,起始于位置pos 写入流的字符将覆盖Clob对象中从位置pos开始的现有字符。 如果的端Clob而写入字符到流达到的值,则长度Clob值将增加以容纳额外的字符。

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

        参数
        pos - 开始写入这个CLOB对象的位置 第一名是1
        结果
        可以写入ASCII编码字符的流
        异常
        SQLException - 如果存在访问 CLOB值的错误或者pos小于1
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.4
        另请参见:
        getAsciiStream()
      • setCharacterStream

        Writer setCharacterStream​(long pos)
                           throws SQLException
        检索流用于写入的Unicode字符流的CLOB值,这Clob对象表示,在位置pos 写入流的字符将覆盖Clob对象中从位置pos开始的现有字符。 如果在将字符写入流时达到了Clob值,那么Clob值将被增加以容纳额外的字符。

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

        参数
        pos - 开始写入CLOB值的位置; 第一名是1
        结果
        可编写Unicode编码字符的流
        异常
        SQLException - 如果访问 CLOB值出现错误或者pos小于1
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.4
        另请参见:
        getCharacterStream()
      • truncate

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

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

        参数
        len - 要截断 CLOB值的长度(以字符为 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
        返回一个包含部分 Clob值的 Reader对象,以pos指定的字符开头,长度为长度字符。
        参数
        pos - 要检索的部分值的第一个字符的偏移量。 Clob中的第一个字符在位置1。
        length - 要检索的部分值的字符长度。
        结果
        Reader通过其可以读取部分 Clob值。
        异常
        SQLException - 如果pos小于1; 或者如果pos大于Clob的字符数; 或者如果pos +长度大于Clob的字符数
        SQLFeatureNotSupportedException - 如果JDBC驱动程序不支持此方法
        从以下版本开始:
        1.6