Eu utilizava o hibernate+firebird, agora estou migrando para o oracle 10g EX.
No firebird eu conseguia manipular normalmente os campos blob, porém, no oracle não estou conseguindo. Vi na net em posts antigos (06/07) que isso era um problema do oracle.
Os campos BLOB do Firebird são armazenados como texto (funciona perfeitamente), já no Oracle são bytes[].
Ocorre que quando utilizo o Oracle nenhuma informação é exibida no JSF. Tentei anotar a propriedade com @Lob, nesse caso apareceram caracteres estranhos.
Esse é o problema!
Vi na internet em posts antigos que havia um problema no driver do oracle, mas são posts de 2006/2007.
Gostaria de saber se isso ainda não foi corrigido ou se tem algum procedimento que eu devo fazer.
Vlw
rdsilio
Os caracteres estranhos que refere não são os bytes armazenados e exibidos de tal forma?
A
apalmeira
Acredito que sim!
Você sabe qual o procedimento para ler corretamente os bytes?
rdsilio
Há formas de exibir dependendo do tipo de elemento que os bytes representam.
Você quer exibir uma imagem armazenada como blob em uma página?
A
apalmeira
Somente texto!
São campos onde o usuário precisa digitar a descrição completa do produto.
A
apalmeira
Olá pessoal,
Ainda estou enrolado com esse caso de ler e gravar em campos Blob(Oracle) utilizado o Hibernate.
Alguem sabe como fazer isso?
Obrigado
A
apalmeira
Problema resolvido!
Se a intenção é armazenar somente texto, utilize CLOB ao invés de BLOB.
A diferença entre os subtipos BLOB, CLOB e NCLOB é que o tipo BLOB guarda informação do tipo RAW, já os tipos CLOB e NCLOB guardam caracteres.
RAW
O tipo RAW guarda dados binários ou strings de bytes como caracteres gráficos ou imagens digitalizadas.
O tipo RAW requer um parâmetro que especifica o seu tamanho máximo.
PL/SQL não interpreta tipos RAW. Se um tipo RAW for transmitido de um sistema para outro, não haverá conversão de tipos de caracteres.
O tamanho máximo permitido para o tipo é de 32767 bytes. Entretanto uma coluna do tipo RAW só pode guardar até 2000 bytes.