CAMPO BLOB ( APENAS NO SELECT )

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
hervalg
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Qui, 02 Jul 2009 10:46 am
Localização: Salto - SP

alguém conhece uma maneira de visualizar um campo BLOB no select ?

Já tentei:

select dbms_lob.substr(campo_blob,100,1) from tabela;

O resultado é: 5445737465. O valor do campo é "TESTE".

No aguardo.
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Como Blob é um campo com dados binários, a conversão não é automática. O Substr que você usou é um programa sobrecarregado, e foi usada a versão para BLOB, que utiliza offset e comprimento em bytes, não em caracteres.

Você poderia fazer isso com a procedure DBMS_LOB.CONVERTTOCLOB:
http://download.oracle.com/docs/cd/E118 ... m#i1020356

Se mostrar um hexadecimal ou algo assim, provavelmente o BLOB foi gravado com outro character set, que é um dos parâmetros da procedure. Teria que verificar onde gravou qual foi o character set usado.
hervalg
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Qui, 02 Jul 2009 10:46 am
Localização: Salto - SP

boa dia amigo.

também estava testando, alterando o campo para CLOB, aí sim o comando que utilizei funciona.

valeu pela dica do DBMS_LOB.CONVERTTOCLOB
Responder
  • Informação