CLOB

O valor CLOB (objeto grande caractere) pode ter comprimento de at?? 2.147.483.647 caracteres. O CLOB ?? utilizado para armazenar dados baseados em caractere UNICODE, como documentos grandes em qualquer conjunto de caracteres.

O comprimento do CLOB ?? especificado em caracteres, a menos que seja especificado um dos sufixos K, M ou G, relacionados aos m??ltiplos 1024, 1024*1024 e 1024*1024*1024, respectivamente.

Nota: O comprimento do CLOB ?? especificado em caracteres (UNICODE).

Sintaxe

{CLOB |CHARACTER LARGE OBJECT}(comprimento [{{K |M |G}]))

Tipo Java correspondente em tempo de compila????o

java.sql.Clob

Tipo do metadado do JDBC (java.sql.Types)

CLOB

Tipo do metadado do JDBC

java.sql.Clob

Tipo do metadado do JDBC (java.sql.Types)

CLOB

No java.sql.ResultSet ?? utilizado o m??todo getClob para obter um tratador de CLOB para os dados subjacentes.

Informa????o relacionada

Consulte java.sql.Blob e java.sql.Clob.

import java.sql.*;

public class clob
{
        public static void main(String[] args) {
                try {
                        String url = "jdbc:derby:clobberyclob;create=true";

                        Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
                        Connection conn = DriverManager.getConnection(url);

            Statement s = conn.createStatement();
            s.executeUpdate("CREATE TABLE documents (id INT, text CLOB(64 K))");
            conn.commit();

            // --- adicionar um arquivo
            java.io.File file = new java.io.File("asciifile.txt");
            int fileLength = (int) file.length();

            // - primeiro, criar um fluxo de entrada
            java.io.InputStream fin = new java.io.FileInputStream(file);
            PreparedStatement ps = conn.prepareStatement("INSERT
            INTO documents VALUES (?, ?)");
            ps.setInt(1, 1477);

            // - definir o valor do par??metro de entrada para o fluxo de entrada
            ps.setAsciiStream(2, fin, fileLength);
            ps.execute();
            conn.commit();

            // --- ler as colunas
            ResultSet rs = s.executeQuery("SELECT text FROM documents
             WHERE id = 1477");
            while (rs.next()) {
                java.sql.Clob aclob = rs.getClob(1);
                java.io.InputStream ip = rs.getAsciiStream(1);
                int c = ip.read();
                while (c > 0) {
                    System.out.print((char)c);
                    c = ip.read();
                }
                System.out.print("\n");
                // ...
            }
        } catch (Exception e) {
            System.out.println("Erro! "+e);
        }
    }
}
Conceitos relacionados
Vis??o geral dos tipos de dado nativos
Tipos num??ricos
Refer??ncias relacionadas
Tipo de dado - atribui????es e compara????o, classifica????o e ordena????o
BIGINT
BLOB
CHAR
CHAR FOR BIT DATA
DATE
DECIMAL
DOUBLE
DOUBLE PRECISION
FLOAT
INTEGER
LONG VARCHAR
LONG VARCHAR FOR BIT DATA
NUMERIC
REAL
SMALLINT
TIME
TIMESTAMP
VARCHAR
VARCHAR FOR BIT DATA