Dúvida CLOB

11 respostas
J

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?

11 Respostas

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

B

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

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

J

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

Naruffy

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

J

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??

Naruffy

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

J

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

B

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

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

C

2 bilhões só? 0o

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

J

pra mim tanto faz…

Criado 20 de agosto de 2009
Ultima resposta 20 de ago. de 2009
Respostas 11
Participantes 4