Update em campo CLOB no oracle

Sim.
vc faz um select e obtem a instancia do CLOB que tu quer alterar.
Depois seta o novo valor dele atraves dos métodos da interface CLOB.
depois basta fazer um update com um prepared statement.

Valeu.

Mesmo direto no banco a lógica é a mesma.

Entenda que large objects, por mais que não seja o seu caso, suportam enormes massas de dados.
Não há uma maneira simples e trivial de se fazer isso apenas com SQL ANSI.

Qual o banco está usando ??

preparedStatement.setBytes( 1, arrayDeBytes ) ?

Utiliza a package DBMS_LOB para isso.

Aqui tem exemplos disso.

http://www.psoug.org/reference/dbms_lob.html

Valeu.

OBS: Essa concatenação tem limite de tamanho…

É de 4000 bytes que serão armazenados no mesmo bloco de dados do resto da tabela.

Porém o oracle pode armazenar muito mais que isso em LOB’s.

Até Oracle 9i = 4GB
Oracle 10G = (4GB - 1 byte) * Tamanho do Bloco de dados.
No caso se o Bloco for de 32K.
Cada arquivo pode ter só até (128 TB - 1 byte).

Até.
:smiley:

Boa tarde,

      Andei pesquisando no google algumas maneiras de realizar um update em um campo CLOB  no oracle e até agora não localizei nada q me ajudou.. tentei fazer um update como um varchar normal mas o oracle acusou q a string literal too long. Alguem conhece alguma maneira de realizar um update em um campo CLOB?

Att,
José Carlos.

Obrigado pela resposta nbluis mas não posso fazer isso atraves do java, tenho que fazer direto no banco.

agradeço a atenção e vou procurar uma maneira aqui.

Abraços.

Oracle.

Obrigado esse site ajudou bastante, estou montando uma query pra verificar se funciona.

Abraços.

Achei a solução e vou postar aqui pra quem um dia precisar!!!

Como a string q eu estava tentando adicionar era grande e toda hora o oracle acusava o erro String Literal too long eu tive a ideia de quebrar a string e ir concatenando aos poucos assim:

Declare x clob; begin x := 'teste'; x := x || 'teste'; --e assim sucessivamente até concatenar toda minha string depois update tabela set campoCLOB = x where condicao; commit; end;

E funcionou perfeitamente :)…

Agradeço a atenção de todos.
Abraços
José Carlos.