3jojojo
Goto Top

Adresse verbessern

Hallo Leute.

Folgende Anweisungen benutze ich um in einer Datenbank Adressdaten zu verbessern
UPDATE tkunde SET cFirma = REPLACE(cFirma, ' Und ', ' & ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cVorname = REPLACE(cVorname, ' Van ', ' van ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cVorname = REPLACE(cVorname, ' Und ', ' & ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cName = REPLACE(cName, ' Van ', ' van ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cName = REPLACE(cName, ' Und ', ' & ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cName = REPLACE(cName, ' Von ', ' von ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cName = REPLACE(cName, ' Der ', ' der ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cStrasse = REPLACE(cStrasse, ' An ', ' an ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cStrasse = REPLACE(cStrasse, ' Am ', ' am ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cStrasse = REPLACE(cStrasse, ' Der ', ' der ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cStrasse = REPLACE(cStrasse, ' Den ', ' den ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cStrasse = REPLACE(cStrasse, ' Dem ', ' dem ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cStrasse = REPLACE(cStrasse, ' Zur ', ' zur ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cStrasse = REPLACE(cStrasse, ' Zum ', ' zum ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cOrt = REPLACE(cOrt, ' An ', ' an ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cOrt = REPLACE(cOrt, ' Am ', ' am ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cOrt = REPLACE(cOrt, ' Der ', ' der ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cOrt = REPLACE(cOrt, ' Den ', ' den ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cOrt = REPLACE(cOrt, ' Dem ', ' dem ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cOrt = REPLACE(cOrt, ' Zur ', ' zur ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cOrt = REPLACE(cOrt, ' Zum ', ' zum ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
UPDATE tkunde SET cOrt = REPLACE(cOrt, ' Ot ', ' OT ') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  

Nun habe ich zusätzlich das Problem das viele Namen und Vornamen UTF-8 Fehler durch eine ehemalig Formatierung haben. Diese könnte ich nun mit

UPDATE tkunde SET cVorname = REPLACE(cVorname, 'jö', 'ö') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
etc verbessern.

Es ist nur viel schreibaufwand für jedes einzelne öäü etc. Kann mir jemand sagen ob das auch einfacher geht?

Content-ID: 313045

Url: https://administrator.de/contentid/313045

Ausgedruckt am: 14.11.2024 um 21:11 Uhr

sabines
sabines 19.08.2016 um 06:57:05 Uhr
Goto Top
Zitat von @3jojojo:


Es ist nur viel schreibaufwand für jedes einzelne öäü etc. Kann mir jemand sagen ob das auch einfacher geht?

Moin,

klar geht das einfacher, Du suchst einen Praktikanten, der über das Frontend(!) jeden einzelnen Datensatz prüft face-wink

Oder Du untersuchst alle Namen, die nicht die gewünschten Standardzeichen (not in a-z A-Z etc) enthalten und baust Dir dann Dein Update Statement zusammen.

Gruss
3jojojo
3jojojo 19.08.2016 um 07:40:19 Uhr
Goto Top
Monika hat keine Zeit dazu ???? Kannst du mir sagen wie genau du das meinst???
sabines
sabines 19.08.2016 um 08:25:28 Uhr
Goto Top
Zitat von @3jojojo:

Monika hat keine Zeit dazu ???? Kannst du mir sagen wie genau du das meinst???

Es gibt dafür ganz viele Ansätze, mit dem hier kannst Du schnell und einfach arbeiten:

Du untersuchst jeden Namen nach Zeichen die nicht A-Z, a-z und die üblichen Sonderzeichen enthalten, damit hast Du alle unerwünschten Zeichen, die kannst Du dann per Update Statement eliminieren. Tabelle vorher sichern.

Ich seh' gerade das die Frage in Batch&Shell steht, meine Antwort bezieht sich auf SQL, Dein Skript sieht danach aus.
Ich denke mal Du meinst eine SQL Tabelle, oder?
3jojojo
3jojojo 19.08.2016 um 08:40:17 Uhr
Goto Top
Ja meine ich. Und von SQL habe ich leider 0 Plan. Der Quelltext bisher stammt auch nich von mir sondern von jemand der mir leider nicht antwortet :D

Kannst du mir helfen?
sabines
sabines 19.08.2016 um 09:50:02 Uhr
Goto Top
Wenn Du von SQL keinen Plan hast, was nicht schlimm ist, dann überlasse das jemandem, der sich damit auskennt und vor allem Verantwortung für seine Taten übernimmt.

Ich kenne Deine Umgebung nicht, und weiß nichts über Deine Datenbank, würdest Du da ernsthaft ein Skript von mir einsetzen, dass Du nicht nachvollziehen kannst.

Manche Frontends haben es nicht so gerne wenn die Daten über das MMS verändert werden und es kann gut sein, dass die Daten nicht nur in der einen Tabelle stehen (und verändert werden müssen) sondern (auch wenns nicht Datenbankkonform ist) an anderen Stellen.

Der Aufwand und die Kosten sind überschaubar , ich empfehle Dir Dich an den Software Support zu wenden, die kennen ihr System und haben sicher fertige Skripte, dürfte in deutlich unter einer Stunde zu machen sein.
3jojojo
3jojojo 19.08.2016 um 10:22:56 Uhr
Goto Top
Ich habe ja schon jemand gefragt der sich darum kümmern sollte aber der meldet sich eben nicht. Selbstverständlich habe ich ein Testsystem wo ich das zuerst einsetzen werde.

Mit
UPDATE tkunde SET cVorname = REPLACE(cVorname, 'jö', 'ö') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  

Wird ja zum Beispiel auch beim Vornamen ein ö schon Richtig dargestellt. Nur wollte ich wissen ob es einfacher geht statt jede

'ö'=>'ö', 'Ö'=>'Ö', 'ß'=>'ß', 'à '=>'à', 'á'=>'á', 'â'=>'â', 'ã'=>'ã', 'ù'=>'ù', 'ú'=>'ú', 'û'=>'û', 'Ù'=>'Ù', 'Ú'=>'Ú', 'Û'=>'Û', 'Ãœ'=>'Ü', 'ò'=>'ò', 'ó'=>'ó', 'ô'=>'ô', 'è'=>'è', 'é'=>'é', 'ê'=>'ê', 'ë'=>'ë', 'À'=>'À', 'Á'=>'Á', 'Â'=>'Â', 'Ã'=>'Ã', 'Ä'=>'Ä', 'Ã…'=>'Å', 'Ç'=>'Ç', 'È'=>'È', 'É'=>'É', 'Ê'=>'Ê', 'Ë'=>'Ë', 'ÃŒ'=>'Ì', 'Í'=>'Í', 'ÃŽ'=>'Î', 'Ï'=>'Ï', 'Ñ'=>'Ñ', 'Ã’'=>'Ò', 'Ó'=>'Ó', 'Ô'=>'Ô', 'Õ'=>'Õ', 'Ø'=>'Ø', 'Ã¥'=>'å', 'æ'=>'æ', 'ç'=>'ç', 'ì'=>'ì', 'í'=>'í', 'î'=>'î', 'ï'=>'ï', 'ð'=>'ð', 'ñ'=>'ñ', 'õ'=>'õ', 'ø'=>'ø', 'ý'=>'ý', 'ÿ'=>'ÿ', '€'=>'€'

in einer Zeile zu ändern
vossi31
vossi31 19.08.2016 um 11:13:10 Uhr
Goto Top
Moin,

Nun habe ich zusätzlich das Problem das viele Namen und Vornamen UTF-8 Fehler durch eine ehemalig Formatierung haben. Diese könnte ich nun mit
Wenn du die "UTF-8 Fehler" nicht näher einkreisen oder bestimmen kannst gehts es wohl nur auf die umständliche Methode, ansonsten könnte ja vielleicht auch irgendein UTF-8-Ansi (oder sonstwas)-Konverter helfen?

Henning
sabines
sabines 19.08.2016 um 11:20:58 Uhr
Goto Top
Pro Update Befehl eine Zeile, wobei mir der Sinn der where clause nicht ganz einleuchtet.
3jojojo
3jojojo 19.08.2016 um 12:13:37 Uhr
Goto Top
also ganz einfach so wie
UPDATE tkunde SET cVorname = REPLACE(cVorname, 'jö', 'ö') WHERE kKunde = (Select MIN(tKunde_kKunde) From tbestellung where Convert(DATETIME, dErstellt, 104) = Convert(VARCHAR, GETDATE(), 104));  
;)

DANKE für die Info dann setz ich mich mal ran :D