Benutzer mit den meisten Antworten
UDF wird nicht erkannt

Frage
-
Hallo zusammen!
Folgendes Problem: Ich erhielt den Auftrag eine View zu erstellen die Namen und Telefonnummern aus einer Tabelle ausliest, was jetzt nicht die schwierigkeit war, jedoch soll ich ebenfalls diverse Sonderzeichen aus den Telefonnummern auslesen (sprich: ' ', '-', '/').
Mit verschachtelten REPLACE's wird das ganze schnell unübersichtlich, also hab ich mich für eine UDF entschieden. Gesagt, getan.
Jetzt sagt er mir nachdem ich dieses UDF erstellt und ausgeführt habe das die Funktion nicht kennt.
Nachdem ich in Google nichts fand wende ich mich nun direkt an euch mit meinem Problem.
Hier der Code für die Abfrage:
SELECT Nummer,
Name,
Vorwahl + replaceInTel(Telefon) Telefon,
FROM KundeUnd die UDF:
CREATE FUNCTION replaceInTel (@str VARCHAR(50))
RETURNS VARCHAR(50) AS
BEGIN
SET @str = REPLACE (@str,'-','')
SET @str = REPLACE (@str,'/','')
SET @str = REPLACE (@str,' ','')
RETURN @str
ENDDas ganze mach ich dann noch mit SQL EXPRESS 2012.
Hoffe es weiß jemand eine Antwort darauf ;)
Danke schonmal im vorraus!
Edit: Hier noch der Fehlercode!
Meldung 195, Ebene 15, Status 10, Zeile 3
'replaceInTel' wird nicht als Name einer integrierten Funktion erkannt.- Bearbeitet kaela Donnerstag, 25. Juni 2015 08:02
Antworten
-
SELECT Nummer,
Name,
Vorwahl + replaceInTel(Telefon) Telefon,
FROM KundeHallo,
wenn Du eine UDF im SELECT Statement verwenden willst, musst Du zwingend das Schema mit angeben, selbst wenn es das Default Schema Deines Users ist. Bei Create hattest Du kein explizites Schema angegeben, ich vermute mal, es ist "dbo", dann muss Dein Select so aussehen:
SELECT Nummer, Name, Vorwahl + dbo.replaceInTel(Telefon) Telefon, FROM Kunde
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Andreas.WolterMicrosoft employee Donnerstag, 25. Juni 2015 08:30
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 3. Juli 2015 06:30
Alle Antworten
-
SELECT Nummer,
Name,
Vorwahl + replaceInTel(Telefon) Telefon,
FROM KundeHallo,
wenn Du eine UDF im SELECT Statement verwenden willst, musst Du zwingend das Schema mit angeben, selbst wenn es das Default Schema Deines Users ist. Bei Create hattest Du kein explizites Schema angegeben, ich vermute mal, es ist "dbo", dann muss Dein Select so aussehen:
SELECT Nummer, Name, Vorwahl + dbo.replaceInTel(Telefon) Telefon, FROM Kunde
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Andreas.WolterMicrosoft employee Donnerstag, 25. Juni 2015 08:30
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 3. Juli 2015 06:30
-
Hallo kaela,
Vielen Dank für Deine Frage und Deinen Beitrag in den Foren. Ich möchte Dich noch auf das Markieren als Antwort aufmerksam machen:
· Forenbeiträge bewertenàNutze die Bewertungsfunktionen ("Als Antwort markieren" und "Als hilfreich bewerten") in den MSDN Foren! Unter anderem können andere später eine Lösung schneller finden. Es ist also wünschenswert, dass die fragenden (Benutzer) die Beiträge anderer Beantworter bewerten.
Hier dazu die wichtigsten Anhaltspunkte aus den Forenregeln und FAQs.
Lösungsbeiträge als “Die Antwort“ markieren
Bitte markieren Sie den Beitrag, der zur Lösung geführt hat, als "Die Antwort". Durch Bewerten eines Beitrags als "Die Antwort" können andere Teilnehmer die Lösung schneller finden. Außerdem können Sie dem Benutzer, der die Antwort eingereicht hat, für seinen Beitrag danken und zur Steigerung der Antwortqualität in der Diskussionsgruppe beitragen.
[Quelle: Forenregeln]Gruß,
DimiarBitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hallo Kaela,
Um Das Problem in Zukunft zu umgehen solltest du darüber nachdenken die Ursprungsdaten zu korrigieren (Stichwort: Datenqualtität).
Somit kannst du auf die Prüfung der Daten beim auslesen verzichten. Um das Hinzufügen von ungültigen Werten zu verhindern kannst du beispielsweise Insert und Update Trigger einsetzten und die Daten vorher prüfen lassen.
Gruß Benjamin
Benjamin Hoch
MCSA: Microsoft Certified Solutions Associate - SQL Server 2012,
MCSA: Microsoft Certified Solutions Associate - Windows Server 2012,