BLOB in DB decodieren und anzeigen?

Hallo, ich habe eine DB wo der Beschreibungstext im Binary-Format abgelegt wird. Wie kann ich in PHPMyAdmin diese Tabelle exportieren und anstatt des [BLOB] Objekt den codierten Inhalt anzeigen. D.h. ich mache eine Abfrage für die gewünschte Tabelle und beim „Beschreibungstext“ will ich nicht den „BLOB“ sondern den reellen Inhalt anzeigen.
Muss ich da „Convert“ einsetzen?

Ziel ist es dann diese Abfrage als *.CSV zu exportieren wo alle Felder im Klartext dargestellt sind.

Danke, VG Thomas

SELECT SPALTENNAME FROM TABELLE

Frage ist nur, warum Text als BLOB abgeleget wird.

Und hast du es schon probiert?
Was hast du schon probiert?

Hallo!

Die allererste Frage ist wohl eher, was da wirklich in dem BLOB-Feld gespeichert ist. Weil… „Text“ ist nicht wirklich aussagekräftig. Ist es ASCII? ANSII? Unicode? UTF8? Je nachdem muß der Wert ggf. umcodiert werden.

Generell stellt sich die Frage, was ein BLOB eigentlich für Daten beinhaltet. Eigentlich ist das dafür gedacht, irgendwelche binären Daten wie z.B. Bilder zu beinhalten, mit denen die Datenbank selbst nichts anfangen kann. Da fragt man sich, ob es überhaupt Sinn macht, die Daten in irgendeiner Textform anzuzeigen, das ist dann meistens eh immer nur Buchstabensalat.

So scheint auch MyPhpAdmin zu denken, man muß die Anzeige von BLOB-werten erstmal aktivieren:

Ob dann rauskommt, was du dir wünschst, mußt du erstmal sehen.

(Und auch von mir: Warum speichert man Text in einem BLOB? Damit nimmt man sich viele Möglichkeiten, die eine DB bietet, und bekommt dafür so Probleme wie du jetzt)

1 Like

Die andere Frage hast du dazugedichtet und die stellt sich gerade nicht. Vielleicht ist der Text zu lang für char/varchar?

@ThomasW_830e8c: hier steht es auch mit Convert, hier ebenso, insofern schließe ich mich der Frage von @Tomh an. :slight_smile:

Gruß
Christa

Länge? Char? Varchar? Echt jetzt? Schonmal was von Textspalten gehört? Die sind erstmal nicht kürzer als BLOBs.

Nein, was ist das für ein interessanter Datentyp? Du meinst wohl den Datentyp „text“, mit dem habe ich mich in der Tat nicht weiter befasst, weil für meine Datenbanken „varchar“ vollkommen ausreicht (und ich auch keine BLOBs habe). Aber nichtsdestotrotz ist das Ausgangsproblem, dass die Daten als BLOB gespeichert sind. Er kann beim nächsten Mal „text“ nehmen, aber die Frage stellt sich jetzt gerade nicht.

Man kann ohne Weiteres die SPalte als BLOB definieren und dann dort einfach Text reinspeichern. Dann zeigt das nur phpmyadmin nicht an, das ist aber die Schuld des Tools und nicht der Datenbank. Wenn ich in eine BLOB-Spalte Text reinspeichere, dann kriege ich den auch einfach wieder raus, ohne Convert.

Verstehe. Du musst auch nicht wissen, was ein Index ist, weil DEINE Datenbanken ohne Indexe vollkommen ausreichen. Gut, dass wir das jetzt wissen.

Eher deswegen, weil text ein Konstrukt ist, dass - wieder einmal - nur in wenigen DBMS vorkommt, im Gegenteil zu varchar oder eben blob, die im SQL-Standard definiert und somit Datenbankübergreifend sind.
Frag bei Oracle nach, wie es denen mit dem Datentyp long ergangen ist.

@Christa hält ihre Datenbank eben im SQL-Standard (zu denen übrigens auch Indizes gehören, nicht Indexes)

Das man einen Text in ein blob speichern kann, ist ja gar nicht das Problem, das können alle möglichen Tools, es geht hier um das Auslesen des „Binary Large OBjects“ - der Name sagt es ja schon aus: „Binary“ - das kann ein Text, ein Bild, ein Dokument, ein irgendwas sein, deswegen gibt es die Konvertierungsfunktionen, wie z.b. in einen Text-Typ wie varchar - und damit meine ich nicht den exotischen Datentyp text.

Grüße,
Tomh

1 Like

Ja. Es geht hier um MySQL, wie die Ursprungsfrage sagt.

Und das weißt du woher? Das ist genauso eine Unterstellung, wie das, was ich vorhin gemacht habe.

Ich schrieb Indexe, so wie der Duden die Mehrzahl von Index nennt. Bin ich jetzt hier im Kindergarten? :roll_eyes:

Es ging in der Ursprungsfrage darum, dass jemand Text in eine BLOB-Spalte gespeichert hat, nicht Binärdaten. Hast du die Ursprungsfrage auch gelesen?

Es wäre wirklich super gewesen, wenn du mal den kompletten Artikelstrang gelesen hättest. Mein Vorschlag war nicht: nimm Datentyp Text. Meine Gegenargument zu Christas Aussage war, dass es im konkreten Fall durchaus Datentypen gibt, die die gleiche Datenmenge wie BLOBs aufnehmen kann.

Exotisch?
MySQL kann das

PostgreSQL kann das

MSSQL kann das (noch)

SQLite kann das

Stimmt total exotisch, dieser Datentyp. Muss man echt nicht kennen. Aber nochmal… deine Einlassung geht völlig an meiner Aussage vorbei.

1 Like

Kannst du auch etwas anderes außer Polemik? So, richtig fachlich HELFEN, und nicht nur schwadronieren?

Nein, nur kurzsichtig.


Die einzige Bedeutung, bei der Indexe die Pluralform von Index ist, ist „Liste von Büchern, die nach päpstlichem Entscheid von den Gläubigen nicht gelesen werden dürfen“.

Ich dachte, wir sind im Bereich Datenbanken und nicht in der Kirche. :roll_eyes:

Nur weil ein paar Datenbanken das können, macht ihn nicht zum SQL-Standard-Datentyp.
Bitte schön, zum Nachlesen:

Du kennst den Unterschied zwischen „kennen“ und „sich mit etwas befassen“.

Nochmal, dein Geblubber geht völlig an Thomas’ Problemstellung vorbei.

@ThomasW_830e8c: dass du eine Frage stellst und dann offensichtlich kein Interesse an den Antworten hast, ist jetzt nur so mittelprächtig. @Tomh hat dir eine Rückfrage gestellt, ich habe auch an der gleichen Stelle nachgehakt, aber von dir kommt … NICHTS. :frowning:

Du hast es mit Lesen auch nicht so? Die erste Antwort hier kam von mir und war konkrete Hilfe. Den ganzen Diskussionskram hast du angefangen mit deinen unnützen Einwürfen.

Und ich auch. Nur mal so. Aber ich habs verstanden. Ich bin hier in den Club der Experten reingeraten. Und es darf keinen anderen geben, neben euch. Sinnlos.

Ehrlich gesagt ist meine Anfrage aus dem Ruder gelaufen und da wollte ich euch nicht weiter stören :wink: