MS SQL Server - Konvertierung des image-Datentyps

Hallo, ich möchte eine binär abgespeicherte Datei lesbar machen; wie muss ich verfahren?

Das funktioniert nicht:
SELECT CAST(SPALTE_B AS VARCHAR(250)) AS MEINTEXT
FROM Tabelle_A
WHERE (SPALTE_A = ‚meine.cfg‘)

Ich erhalte damit folgenden Hinweis:
„Die explizite Konvertierung des image-Datentyps in VARCHAR ist nicht zulässig.“

Vielen Dank für Hilfe!
Ralf Schneider

Hi,
was meinst du mit „lesbar“ machen?

Du kannst die Binär-Daten als ganzes holen und mit dem entsprechenden Programm bearbeiten. Aber für Menschen unlesbare binäre Daten bleiben auch unlesbar wenn sie in VarChar gewandelt würden.

Gruss
Joey

Hallo Joey,
vielen Dank für Deine Hilfe! Hier die Eckdaten:
Ich habe eine Tabelle in einer MS SQL Server 2005 DB. Diese Tabelle hat 2 Spalten:
PATH (VARCHAR 260)
FILECONT (image)

In PATH steht der Pfad und der Name der Konfigurationsdatei, z. B.: „admin\meinekonfiguration.cfg“
In FILECONT ist der Inhalt der Datei „meinekonfiguration.cfg“ binär vom Datentyp image gespeichert.

Ich möchte mir via z. B. SQL den Inhalt der Datei in Klartext anzeigen bzw. ausgeben lassen.
Oder wie kann ich die Daten im ganzen holen um diese mit einem Texteditor bearbeiten zu können.

Ich habe nach langer Recherche folgendes Statement gefunden: Klappt aber wie gesagt nicht.
SELECT CAST(FILECONT AS VARCHAR(250)) AS MEINTEXT
FROM TBL_CONFIG
WHERE (PATH = ‚meinekonfiguration.cfg‘)

Viele Grüße
Ralf

Hallo,

In FILECONT ist der Inhalt der Datei „meinekonfiguration.cfg“
binär vom Datentyp image gespeichert.

Warum speicherst du eine Textdatei mit Datentyp Image?
Nimm dazu doch VARCHAR(max) bzw. NVARCHAR(max)

Ganz nebenbei wird der Datentyp Image als „veraltet“ gekennzeichnet und soll in Zukunft nicht mehr verwendet werden.

Gruss
Joey

Hallo Joey,
ich habe eine DB übertragen bekommen in der es eine Tabelle gibt, in der Konfigurationsdateien binärer mit dem Datentyp image gespeichert sind. Ich möchte diese Konfigurationsdateien für mich lesen/einsehen/ausgeben damit ich weiß was drinsteht.
Grüße
Ralf

Hi,
du kannst ein Image Datentyp nicht in varchar direkt casten.

Mit einem Umweg über den binary bzw varbinary Typ sollte es aber gehen.

Ungefährt so (ungetestet):

select convert(varchar(8000),convert(binary(8000), Spalte\_image)) from tabelle 

Gruss
Joey

Hallo Joey,
das Select wird schon mal fehlerfrei ausgeführt! Aber es werden lediglich eine paar Sonderzeichen angezeigt.
Vielen Dank
Ralf

Hi,
dann versuche es mal mit dem entsprechenden UniCode Typ: nvarchar

Gruss
Joey

Hi Joey,

SELECT CONVERT(nvarchar(4000), CONVERT(binary(4000), FILECONT)) AS Expr1
FROM cmbt_Files
WHERE (PATH = ‚Administrator\toolbar3_tm.cfg‘)

… das selbe Ergebnis; nur Sonderzeichen.

Viele Grüße
Ralf

Hi,
vielleicht hat das Programm, welches die Daten in die DB gepackt hat, die Daten gezippt, base64 codiert oder die Dateien sind Binär, oder, oder, oder …

Schwer zu sagen, aus der Ferne :smile:

Gruss
Joey

Hallo Joey, ein Bekannter hat ein Programm geschrieben, mit dem ich die Daten zum Teil lesen kann. Die meisten binären Daten könnte ich nur über den Sourcecode der Applikation herausfinden. Auf diesen habe ich allerdings keinen Zugriff.
Dennoch vielen Dank für Deine Hilfe.
Gruß
Ralf