Forums Neueste Beiträge
 

Zeichensatz-Problem bei Konvertierung von Binary in Varchar

18/03/2009 - 18:42 von datenbanken | Report spam
Hallo,

ich möchte die Sonderzeichen CHAR(191) und CHAR(195) aus von Binary
nach Varchar konvertierten Text eliminieren. Mit Replace funktioniert
das aus irgendeinem Grund nicht; hier z. B. SELECT REPLACE(REPLACE('¿àà
¿¿sdfg¿¿ààà¿¿tz¿', CHAR(191), ''), CHAR(195), '') funktioniert es,
nicht aber, wenn ich das gleiche Verfahren innerhalb einer View auf
REPLACE(REPLACE(Mein_Feld, CHAR(191), ''), CHAR(195), '') AS Mein_Feld
anwenden will.

Mein_Feld ist hierbei der Spaltenname der Spalte, die zuvor (in einer
CTE) aus Binary zu Varchar konvertiert wurde.

Jetzt vermute ich, dass ich unmittelbar beim Konvertieren mit CAST die
Collation anders wàhlen muss (bisher ist keine angegeben), damit die
Sonderzeichen CHAR(191) bzw. CHAR(195) gar nicht mehr im konvertierten
Text auftauchen. Liege ich damit richtig? Welche Collation könnte ich
nehmen, um nur ASCII-Zeichen zuzulassen? Oder bekomme ich das anders
gelöst?

Viele Grüße
Bodo
 

Lesen sie die antworten

#1 Elmar Boye
18/03/2009 - 19:04 | Warnen spam
Hallo Bodo,

schrieb ...
ich möchte die Sonderzeichen CHAR(191) und CHAR(195) aus von Binary
nach Varchar konvertierten Text eliminieren. Mit Replace funktioniert
das aus irgendeinem Grund nicht; hier z. B. SELECT REPLACE(REPLACE('¿àà
¿¿sdfg¿¿ààà¿¿tz¿', CHAR(191), ''), CHAR(195), '') funktioniert es,
nicht aber, wenn ich das gleiche Verfahren innerhalb einer View auf
REPLACE(REPLACE(Mein_Feld, CHAR(191), ''), CHAR(195), '') AS Mein_Feld
anwenden will.

Mein_Feld ist hierbei der Spaltenname der Spalte, die zuvor (in einer
CTE) aus Binary zu Varchar konvertiert wurde.



Welche Sortierfolge die Datenbank verwendet,
wàre u. U. sinnvoll zu wissen.

Probiere mal:
SELECT REPLACE(REPLACE(
mein_feld COLLATE Latin1_General_BIN,
CHAR(191) COLLATE Latin1_General_BIN, ''),
CHAR(195) COLLATE Latin1_General_BIN, '')
FROM Tabelle

Gruß Elmar

Ähnliche fragen