Ich versuche von einer SQL-Konsole aus zu sehen, was sich in einem Oracle BLOB befindet.
Ich weiß, dass es einen etwas großen Text enthält und ich möchte nur den Text sehen, aber die folgende Abfrage zeigt nur an, dass sich in diesem Feld ein BLOB befindet:
select BLOB_FIELD from TABLE_WITH_BLOB where ID = '<row id>';
Das Ergebnis ist nicht ganz das, was ich erwartet hatte:
BLOB_FIELD ----------------------- oracle.sql.BLOB@1c4ada9
Welche magischen Beschwörungsformeln kann ich also verwenden, um das BLOB in seine Textdarstellung umzuwandeln?
PS: Ich versuche nur, den Inhalt des BLOB von einer SQL-Konsole (Eclipse Data Tools) aus zu betrachten und nicht im Code zu verwenden.
Sie können unten SQL verwenden, um die BLOB-Felder aus der Tabelle zu lesen.
quelle
SQL Developer bietet auch diese Funktionalität:
Doppelklicken Sie auf die Ergebnisrasterzelle und klicken Sie auf Bearbeiten:
Dann oben rechts im Popup "Als Text anzeigen" (Sie können sogar Bilder sehen ..)
Und das ist es!
quelle
Wenn Sie im Text suchen möchten, anstatt ihn anzuzeigen, funktioniert dies:
quelle
Die Antwort von Barn hat bei mir mit Änderungen funktioniert, da meine Spalte nicht komprimiert ist. Die schnelle und schmutzige Lösung:
quelle
Ich hatte eine Weile damit zu kämpfen und implementierte die PL / SQL-Lösung, stellte jedoch später fest, dass Sie in Toad einfach auf die Ergebnisrasterzelle doppelklicken können und ein Editor mit Inhalten im Text angezeigt wird. (Ich bin auf Toad v11)
quelle
Wenn Ihr Text mithilfe des DEFLATE-Algorithmus im Blob komprimiert ist und ziemlich groß ist, können Sie ihn mit dieser Funktion lesen
Führen Sie dann select aus, um Text abzurufen
Hoffe das wird jemandem helfen.
quelle
Verwenden Sie diese SQL, um die ersten 2000 Zeichen des BLOB abzurufen.
Hinweis: Dies liegt daran, dass Oracle die Konvertierung von BLOB mit einer Länge von mehr als 2000 nicht verarbeiten kann.
quelle
Sie können dies versuchen:
Es wäre jedoch auf 4000 Byte begrenzt
quelle
Arbeitete für mich,
quelle
Verwenden Sie
TO_CHAR
Funktion.Wandelt
NCHAR
,NVARCHAR2
,CLOB
, oderNCLOB
Daten in die Datenbank - Zeichensatz. Der zurückgegebene Wert ist immerVARCHAR2
.quelle