Estou tentando ver em um console SQL o que está dentro de um Oracle BLOB.
Eu sei que ele contém um corpo de texto um tanto grande e quero apenas ver o texto, mas a consulta a seguir indica apenas que há um BLOB nesse campo:
select BLOB_FIELD from TABLE_WITH_BLOB where ID = '<row id>';
o resultado que estou obtendo não é exatamente o que esperava:
BLOB_FIELD ----------------------- oracle.sql.BLOB@1c4ada9
Então, que tipo de encantamentos mágicos posso fazer para transformar o BLOB em sua representação textual?
PS: Estou apenas tentando olhar o conteúdo do BLOB de um console SQL (Eclipse Data Tools), não usá-lo no código.
Você pode usar o SQL abaixo para ler os campos BLOB da tabela.
fonte
O SQL Developer também oferece esta funcionalidade:
Clique duas vezes na célula da grade de resultados e clique em editar:
Em seguida, na parte superior direita do pop-up, "Exibir como texto" (você pode até ver as imagens ..)
E é isso!
fonte
Se você deseja pesquisar dentro do texto, em vez de visualizá-lo, isso funciona:
fonte
A resposta de Barn funcionou para mim com modificações porque minha coluna não está compactada. A solução rápida e suja:
fonte
Lutei com isso por um tempo e implementei a solução PL / SQL, mas depois percebi que no Toad você pode simplesmente clicar duas vezes na célula da grade de resultados, e ele abre um editor com conteúdo em texto. (estou no Toad v11)
fonte
Caso seu texto esteja compactado dentro do blob usando o algoritmo DEFLATE e seja muito grande, você pode usar esta função para lê-lo
Em seguida, execute select para obter o texto
Espero que isso ajude alguém.
fonte
Use este SQL para obter os primeiros 2.000 caracteres do BLOB.
Nota: Isso ocorre porque o Oracle não será capaz de lidar com a conversão de BLOB com mais de 2.000.
fonte
Você pode tentar isto:
No entanto, seria limitado a 4000 bytes
fonte
Funcionou para mim,
fonte
Use a
TO_CHAR
função.Convertidos
NCHAR
,NVARCHAR2
,CLOB
, ouNCLOB
dados para o conjunto de caracteres de banco de dados. O valor retornado é sempreVARCHAR2
.fonte