J'essaie de voir à partir d'une console SQL ce qu'il y a à l'intérieur d'un BLOB Oracle.
Je sais qu'il contient un corps de texte assez volumineux et je veux simplement voir le texte, mais la requête suivante indique uniquement qu'il y a un BLOB dans ce champ:
select BLOB_FIELD from TABLE_WITH_BLOB where ID = '<row id>';
le résultat que j'obtiens n'est pas tout à fait ce que j'attendais:
BLOB_FIELD ----------------------- oracle.sql.BLOB@1c4ada9
Alors, quel genre d'incantations magiques puis-je faire pour transformer le BLOB en sa représentation textuelle?
PS: J'essaie juste de regarder le contenu du BLOB depuis une console SQL (Eclipse Data Tools), pas de l'utiliser dans le code.
Vous pouvez utiliser SQL ci-dessous pour lire les champs BLOB de la table.
la source
SQL Developer fournit également cette fonctionnalité:
Double-cliquez sur la cellule de la grille de résultats, puis cliquez sur Modifier:
Ensuite, dans la partie supérieure droite de la fenêtre contextuelle, "Afficher sous forme de texte" (vous pouvez même voir des images ..)
Et c'est tout!
la source
Si vous souhaitez rechercher dans le texte plutôt que de le visualiser, cela fonctionne:
la source
La réponse de Barn a fonctionné pour moi avec modification car ma colonne n'est pas compressée. La solution rapide et sale:
la source
J'ai eu du mal avec cela pendant un moment et j'ai implémenté la solution PL / SQL, mais je me suis rendu compte plus tard que dans Toad, vous pouvez simplement double-cliquer sur la cellule de la grille de résultats, et cela fait apparaître un éditeur avec le contenu en texte. (je suis sur Toad v11)
la source
Si votre texte est compressé à l'intérieur du blob à l'aide de l'algorithme DEFLATE et qu'il est assez volumineux, vous pouvez utiliser cette fonction pour le lire
Ensuite, exécutez select pour obtenir du texte
J'espère que cela aidera quelqu'un.
la source
Utilisez ce SQL pour obtenir les 2000 premiers caractères du BLOB.
Remarque: Ceci est dû au fait qu'Oracle ne pourra pas gérer la conversion de BLOB d'une longueur supérieure à 2000.
la source
Vous pouvez essayer ceci:
Cependant, il serait limité à 4000 octets
la source
A travaillé pour moi,
la source
Utilisez la
TO_CHAR
fonction.Convertis
NCHAR
,NVARCHAR2
,CLOB
ouNCLOB
données au jeu de caractères de base de données. La valeur renvoyée est toujoursVARCHAR2
.la source