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