Bom dia Srs.
Tenho uma tabela q possui uma coluna CLOB.
Apos fazer um select * nesta tabela, e jogar para um ArrayList, o campo CLOB vem com o seguinte conteudo (oracle.sql.CLOB@140c0a3).
Alguem sabe como posso resolver isso para me retornar uma String com o conteudo da coluna CLOB?
Obrigado pessoal.
[]'s
Cara fiz um mapeamento para uma coluna BLOB no Oracle, veja se a solução atende a sua necessidade.
@Lob
@Type(type = "org.hibernate.type.BinaryType")
@Column(name = "ARQUIVO", length = Integer.MAX_VALUE)
@Basic(fetch = FetchType.LAZY)
private byte[] arquivo;
Abç!!
Obrigado gmeneses.
Porem minha Table não possiu uma Entity.
Só tenho um select em JDBC mesmo, e queria retornar um CLOB para uma String.
[]'s
Entendi, mas você precisa mesmo que esta consulta seja armazenada em um ArrayList?! Fiquei confuso sobre o por que desta estrutura para receber o SELECT, esta coluna armazena caracteres, certo?!.
Veja se esse post lhe ajuda >> http://www.guj.com.br/java/14004-manipular-campos-clob-no-oracle
Abç!
Fala gmeneses.
Sim, precisa ser em um ArrayList (Sistema legado, sabe como é hehe)
Mais resolvi meu problema usando esse metodo, que recebe um Clob e retorna uma String.
[code]import java.io.BufferedReader;
import java.io.IOException;
import java.sql.Clob;
import java.sql.SQLException;
public class ClobStringConversion {
public static String clobStringConversion(Clob clb) throws IOException, SQLException
{
if (clb == null)
return “”;
StringBuffer str = new StringBuffer();
String strng;
BufferedReader bufferRead = new BufferedReader(clb.getCharacterStream());
while ((strng=bufferRead .readLine())!=null)
str.append(strng);
return str.toString();
}
}[/code]
O unico problema agora, é q a message não veio com a endentação correta, mais deve ser coisa simples.
Obrigado.
[]'s
gmeneses.
No ultimo post que vc me passou, existe esse codigo, que funcionou perfeitamente no meu caso.
Ele converte de Clob para String, sem perder a formatação
Vlw!!
public String getValueStringCLOB(Clob clob){
String s = "";
int y = 0;
try {
y = (int) clob.length();
s = y > 0 ? clob.getSubString(1, y) : "";
} catch (Exception ex) {
throw new ServletException(ex);
} finally{
return s;
}
}
Abraço.
Blz brother, pra manter as boas práticas do Fórum, edite o nome do tópico acrescentando [RESOLVIDO].
Abç!!