Dúvida CLOB

Pessoal, tenho uma dúvida com campo CLOB, eu tenho um campo desse tipo na minha aplicação e eu gostaria de transformá-lo para outro tipo, eu posso transformá-lo para String direto ou tem algum problema?

Não entendi direito, você quer trasnformar um CLOB para VARCHAR? Ou pegar um campo CLOB em java para String, se for a primeira, dá para fazer mas tem que fazer umas “ginásticas” e não é muito bom não, o segundo dá para fazer sem problema, se for outra coisa posta ai.

[]s

[quote=Naruffy]Não entendi direito, você quer trasnformar um CLOB para VARCHAR? Ou pegar um campo CLOB em java para String, se for a primeira, dá para fazer mas tem que fazer umas “ginásticas” e não é muito bom não, o segundo dá para fazer sem problema, se for outra coisa posta ai.

[]s[/quote]

Diz como transforma pro menino! Tu só falou que dava mas não disse como! :wink:

Quero Transformar de CLOB para String. Value a atenção.

A solução para clob virar varchar :),

Ela consiste em criar um campo novo jogar os valores nesse campo, apagar o campo clob, criar ele de novo como varchar e colocar os valores de volta nele.

-- Adiciona o campo auxiliar ALTER TABLE teste ADD campoauxiliar VARCHAR2(5) / -- Coloca os valores do nosso campo no auxliar BEGIN FOR Rec IN (SELECT campoclob FROM teste) lOOP UPDATE teste SET campoauxiliar = dbms_lob.substr( rec.campoclob, 5, 1 ); END LOOP; END; / -- Dropa o campo para ele ser criado com o novo tipo desejado ALTER TABLE teste DROP COLUMN campoclob / -- Cria o campo com o novo tipo desejado ALTER TABLE teste ADD campoclob VARCHAR2(5) / -- Coloca os valores de volta no novo campo BEGIN FOR Rec IN (SELECT campoauxiliar FROM teste) lOOP UPDATE teste SET campoclob = rec.campoauxiliar; END LOOP; END; / -- Apaga o campo auxiliar ALTER TABLE teste DROP COLUMN campoauxiliar /

[]s

Desculpa amigo, mas acho que não fui muito específico, eu pego o campo CLOB do banco e na minha aplicação eu dou dou um toString() nele, a minha dúvida era com relação a essa ação, se pode dar algum erro??

Hum, imagino que você esteja pegando com o ResultSet.getString certo?, caso sim não haverá problema algum, pois CLOB é o tipo de dados para armazenar um texto muito grande, então na hora de conerter para String é a mesma coisa que se fosse um campo varchar

[]s

Só mais uma dúvida String do Java tem um tamanho limite??

Só vai dar erro se você chamar o toString em uma referência nula. Você pode não receber a String desejada, caso o método to String não esteja implementado neste Objeto, mas se você está preocupado com erros não vai ter.

Já achei a resposta, 2 bilhões de caracteres

2 bilhões só? 0o

não seria 2^32, igual a qq outro array em Java?

pra mim tanto faz…