![]() |
Datenbank: MSSQL • Version: 2000 SP3 • Zugriff über: TSQL
Telefonnummern trennen in Vorwahl-Rufnummer mit TSQL
Hallo Leute,
ich brauche mal einen kleinen Denkanstoß. Beim Import von Kundendaten in meine Callcenter Software muss die Telefonnummer in folgendem Format vorliegen, damit sie für einige Programmfunktionen bzw den späteren Export sauber getrennt werden kann:
Code:
Es kommt immer wieder vor, das eine Importdatei kein Trennzeichen (Leerzeichen, Bindestrich o.Ä.) zwichnen der Vorwahl und der Telefonnummer hat.
Ortsnetzkennzahl-Rufnummer
Meine Kunden sind dann so kreativ, das sie die Importdatei mit Excel bearbeiten und bei den Telefonnummern einfach pauschal nach der 4. Ziffer ein "-" einfügen. Bisher war das kein Problem. Jetzt bin ich dabei ein Plugin zum Verkauf von "?-"DSL zu entwicken. (Besser gesagt, Montag ist Abgabetermin ... :shock: ) Für den Verfügbarkeitscheck werden Vorwahl und Telefonnummer als Eingabeparameter erwartet. Damit der Kunde keine Möglichkeit mehr hat, die Telefonnummern nach Phantasie zu trennen möchte ich eine UDF basteln, die alle Sonder und Leerzeichen aus der Telefonnummer entfernt. Dann soll die Rufnummer mit einer bestehenden Vorwahlenliste abgeglichen werden. Die Funktion soll die fertig formattierte Rufnummer ("Vorwahl-Rufnummer") aus Ausgabeparameter zurückliefern. Sicher könnte man die Telefonnummer nach und nach am Ende abschneiden und dann dann prüfen ob sie in der Vorwahlentabelle existiert. Das ist aber deutlich zu langsam. Derzeit finde ich aber keinen Ansatz für eine bessere und schnelle Lösung ... :roll: Habt ihr dazu eine gute Idee ? Schöne Grüße, Jens :hi: |
Re: Schöne Grüße, Jens
Gib dem Thread bitte einen vernünftigen Titel ;)
Danke, ...:cat:... |
Re: Schöne Grüße, Jens
Zitat:
:roll: :mrgreen: |
Re: Schöne Grüße, Jens
Hallo Jens,
warum trennst Du nicht schon bei der Eingabe? Klassisch gesehen zwei Eingabefelder für Vorwahl und Telefonnummer. By Claus |
Re: Schöne Grüße, Jens
warum willst du irgendwas abschneiden? du hast doch alle vorwahlen jetzt sicher in einer Liste. Frag also einfach ab welche Telefonnummer (vorwahl + Telnummer) mit TestVorwahl anfängt und bei den gefunden musst du ja dann einfach von vorwhl + Telnummer am anfang die Länge von TestVorwahl abschneiden um die eigentliche Telefonnummer zu bekommen. Sollte auch nicht all zu lange dauern.
Ändere bitte auch den Betreff, der entspricht nicht den Regeln der DP. Durch lesen der anderen Beiträge kam jetzt eine Frage bei mir auf. Sind derzeit in der DP Vorwahl und eigentliche Tel-Nummer in der DB nicht getrennt? Wenn dem so ist, hast du vor das weiter so zu belassen? |
Re: Schöne Grüße, Jens
Zitat:
Leider unpraktikabel, weil die Callcenter ihre Kundendaten idR von großen Adresslieferanten kaufen oder weil sie die Daten von einem Auftraggeber vorsetzt bekommen. Das Format der Rohdaten ist dabei sehr individuell. Meist ist keine Trennung von Vorwahl und Rufnummer vorhanden. |
Re: Telefonnummern Trennen in Vorwahl-Rufnummer mit TSQL
wäre es nicht das effektivste wenn du jetzt so eine vorwahlliste hast das du beim importieren der Telefonnummern dort schon die Vorwahl ermittelst und dann die daten in 2 Felder der Datenbank einträgst?
|
Re: Telefonnummern Trennen in Vorwahl-Rufnummer mit TSQL
Hallo Jens,
SirThornberry war schneller … dann musst Du die Telefonnummer normalisieren in dem Du alles was nicht numerisch ist entfernst. Jetzt brauchst Du nur noch einen Check auf die Vorwahlen machen, in dem Du eine Vorwahlenliste (diese ist dann Pflicht) dazu benutzt, um eine Vorwahl zu klassifizieren. Wenn Du einen Treffer hast, ist es klar, der Rest der Telefonnummer ist die eigentliche Nummer. bye Claus |
Re: Telefonnummern Trennen in Vorwahl-Rufnummer mit TSQL
Hallo Jens,
bei einem binary search mit der normalisierten Rufnummer in der ONKZ-Tabelle wird (a) nie ein Treffer erfolgen und (b) die passende Vorwahl immer der Eintrag vor der insert position sein. Grüße vom marabu |
Re: Telefonnummern Trennen in Vorwahl-Rufnummer mit TSQL
marabu scheint die gleiche idee gehabt zu haben wie ich, hab nämlich grad mal sowas zum test geschrieben wie man die Vorwahl ermittelt.
Delphi-Quellcode:
var LVorwahlen: TStringList;
LIndex: Integer; begin LVorwahlen := TStringList.Create; LVorwahlen.Sorted := True; //LVorwahlen mit Vorwahlen aus DB füllen if LVorwahlen.Find(Edit1.Text, LIndex) then ShowMessage('es handlet sich um eine Vorwahl.') else begin if (LIndex > 0) and AnsiStartsText(LVorwahlen.Strings[LIndex-1], Edit1.Text) then ShowMessage('Vorwahl ist: ' + LVorwahlen.Strings[LIndex-1]) else ShowMessage('Keine Vorwahl gefunden'); end; LVorwahlen.Free; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:45 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 by Thomas Breitkreuz