![]() |
Datenbank: FB • Version: 3 • Zugriff über: IBExpert
Suchen&Ersetzen in einem BLOB-Feld mit SQL
Hallo,
sicherlich eine Anfängerfrage, aber ausser einfachen SELECT-Statements oder mal ein UPDATE kenne ich mich mit SQL noch wenig aus. Daher die Frage hier. Gegeben sei eine Tabelle in einer Firebird-Datenbank 3.0. Die Tabelle hat ein BLOB-Feld (SUB_TYPE 0), in diesen Blobs stehen zeilenweise Konfigurationsdaten. Beispiel:
Delphi-Quellcode:
Nun möchte ich in dieser Tabelle in allen Datensätzen das "P3400M-W10" ersetzen durch "P3400X-W10". Wie muss dazu das SQL-Statement aussehen? Das man mit einem "UPDATE" einfach Feldinhalte ersetzen kann weiß ich und die Syntax dazu ist mir auch bekannt, aber wie man Teilstrings findet und vor allen Dingen ersetzt, dazu habe ich bisher noch nicht gefunden. In MySQL scheint es eine spezielle Funktion
DBType=0
SrvType=2 SrvName=P3400M-W10/3050 Protocol=0 SrvVer=15 DBName=C:\AM\Client\FRA\AM_FB_CLIENT.FDB ISC4DBName= Alias=P3400M-W10/3050:C:\AM\Client\FRA\AM_FB_CLIENT.FDB ![]() Vielen Dank im Voraus. Gruß, Markus |
AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL
Substrings finden kann man mit z.B. mit CONTAINING (ohne Indexverwendung) oder besser STARTING (wenn am Anfang des Strings; u.U. Index anwendbar) oder flexibel unter Verwendung von regulären Ausdrücken.
|
AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL
Auch in Firebird gibt es imho eine Replace-Funktion, die man mit der Update-Funktion kombinieren kann, denke ich. Ich weiß nur nicht ob das auf ein Blob-Feld anwendbar ist?
|
AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL
Zitat:
![]() |
AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL
OK, dann ist das doch straight forward:
Update Tabelle Set BlobFeld=Replace(BlobFeld,'P3400M-W10','P3400X-W10') |
AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL
Zitat:
Das war ja echt einfach. Vielen Dank. |
AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL
Im Notfall hätte man noch eine Binär<>Text-Convertierung drumrummachen müssen, wenn die DB das nicht automatisch (korrekt) konvertieren kann/will.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz