AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Suchen&Ersetzen in einem BLOB-Feld mit SQL

Suchen&Ersetzen in einem BLOB-Feld mit SQL

Offene Frage von "himitsu"
Ein Thema von Zwirbel · begonnen am 12. Dez 2016 · letzter Beitrag vom 12. Dez 2016
Antwort Antwort
Zwirbel

Registriert seit: 17. Aug 2009
66 Beiträge
 
Delphi 11 Alexandria
 
#1

Suchen&Ersetzen in einem BLOB-Feld mit SQL

  Alt 12. Dez 2016, 15:08
Datenbank: FB • Version: 3 • Zugriff über: IBExpert
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:
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
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 https://techjourney.net/how-to-find-...ase-using-sql/ dafür zu geben, aber in FB finde ich etwas entsprechendes nicht.

Vielen Dank im Voraus. Gruß, Markus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL

  Alt 12. Dez 2016, 15:23
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL

  Alt 12. Dez 2016, 15:25
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?
Ralph
  Mit Zitat antworten Zitat
Zwirbel

Registriert seit: 17. Aug 2009
66 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL

  Alt 12. Dez 2016, 15:40
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?
Hätte ich doch mal besser da gesucht womit ich das machen will http://ibexpert.net/ibe/pmwiki.php?n=Doc.REPLACE. Wie bastelt man nun das REPLACE in eine Stored Procedure oder in ein IBBlock? Danke.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL

  Alt 12. Dez 2016, 15:49
OK, dann ist das doch straight forward:

Update Tabelle
Set BlobFeld=Replace(BlobFeld,'P3400M-W10','P3400X-W10')
Ralph
  Mit Zitat antworten Zitat
Zwirbel

Registriert seit: 17. Aug 2009
66 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL

  Alt 12. Dez 2016, 15:57
OK, dann ist das doch straight forward:

Update Tabelle
Set BlobFeld=Replace(BlobFeld,'P3400M-W10','P3400X-W10')
Bingo

Das war ja echt einfach.

Vielen Dank.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.151 Beiträge
 
Delphi 12 Athens
 
#7

AW: Suchen&Ersetzen in einem BLOB-Feld mit SQL

  Alt 12. Dez 2016, 16:47
Im Notfall hätte man noch eine Binär<>Text-Convertierung drumrummachen müssen, wenn die DB das nicht automatisch (korrekt) konvertieren kann/will.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz