Hallo,
ich möchte eine PL-SQL Funktion schreiben, die eine Telefonnummer erhält, mögliche Sonderzeichen entfernt (z.B. ()± usw) und die bereinigte Telefonnummer wieder zurückgibt.
Gruß,
Christian
Hallo,
ich möchte eine PL-SQL Funktion schreiben, die eine Telefonnummer erhält, mögliche Sonderzeichen entfernt (z.B. ()± usw) und die bereinigte Telefonnummer wieder zurückgibt.
Gruß,
Christian
Hi!
ich möchte eine PL-SQL Funktion schreiben, die eine
Telefonnummer erhält, mögliche Sonderzeichen entfernt (z.B.
()± usw) und die bereinigte Telefonnummer wieder zurückgibt.
Schau mal unter „replace“ bzw. „translate“ nach …
Grüße,
Tomh
Ich habe jetzt eine Tabelle gebaut mit 2 Feldern (Mit dem zu suchenden String und mit dem zu ersetzenden String). In der Tabelle sollen verschiedene Einträge rein. (z.B +49 soll er in eine 0 ersetzen, einen Bindestrich soll er entfernen usw.) Jetzt laufe ich in einer Schleife sämtliche Suchstrings durch und will dann die Telefonnummer mit decode ändern.
FOR datensatz IN (SELECT * FROM TELFONSUCHE)
LOOP
Telnr := SELECT decode(Telnr, datensatz.SUCHEN, datensatz.ERSETZEN) from dual;
END LOOP;
Aber solche Datenbankfunktionen wie decode kann ich ja nur in einem SQL Statement benutzen.
Ich hoffe ich habe das halbwegs verständlich aufgeschrieben.
Gruß,
Christian
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Aber solche Datenbankfunktionen wie decode kann ich ja nur in
einem SQL Statement benutzen.
Hallo Christian,
na und. Dafür ist DUAL doch da.
Ich hoffe ich habe das halbwegs verständlich aufgeschrieben.
Ehrlich? Nein.
Gruß
Peter
Gruß,
Christian
Hallo Christian,
was gefällt dir am Vorschlag von tomh nicht? Scheint doch perfekt zu passen.
Grüßt: Guido
Mahlzeit,
deine Aufgabenbeschreibung enthält zwei Teile:
In der
Tabelle sollen verschiedene Einträge rein. (z.B +49 soll er in
eine 0 ersetzen, einen Bindestrich soll er entfernen usw.)
Das wäre der eine: eine einigermaßen intelligente Strinbgearbeitungsfunktion, spezialisiert auf Telefonnummern.
Jetzt laufe ich in einer Schleife sämtliche Suchstrings durch
und will dann die Telefonnummer mit decode ändern.
Das ist der zweite: Anwenden der Funktion auf alle Einträge einer Tabelle.
Für den ersten Teil hat dir Tomh einen brauchbaren Hinweis gegeben. Wenn du mehr Beispiele brauchst, schau ruhig in der Oracle-Dokumentation zu PL/SQL nach - sie ist hervorragend. Zusätzlich gibt es im Web jede Menge Seiten mit beispielen und fertigen Codeteilen, z.B. http://wiki.ittoolbox.com/index.php/Code:User-Define…
Zum zweiten Teil deiner Aufgabe: in einer Datenbank ist es meist ziemlich schlecht, alle Datensätze in einer FOR-Schleife zu bearbeiten. In dem genannten Zusammenhang würde ich es sogar dämlich nennen. Dazu gibt es ja Abfragen in der Art:
UPDATE Meine\_Tabelle
SET Ersetztes\_Feld = Meine\_Tolle\_Stringfunktion(Suchfeld);
Hoffe geholfen zu haben!
Gruß
Sancho