SQL Server 2016: Triggers, Stored Procedures und Funktionen

Beispiel einer Skalarfunktion

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Das Schlussbeispiel zeigt, wie mit einer WHILE-Schleife eine Zeichenkette durchlaufen werden kann, um spezielle Zeichen – hier Vokale – zu suchen.
02:47

Transkript

Und auch dieses Kapitel soll nicht ohne ein größeres Beispiel zu Ende gehen. Ich lege zunächst einmal die Datenbank dafür an und dann die entsprechende Funktion, die mir den Prozentwert angeben soll, wie viele Zeichen an einer übergebenen Zeichenkette Vokale sind. Deren einziger Parameter ist die Zeichenkette, die es zu untersuchen gilt und die ist vom Datentyp NVARCHAR (4000), das bedeutet, die Unicode maximal 4000 Zeichen. Die Rückgabe ist dezimal 18,2, also eine Dezimalzahl mit 18 Stellen, vorbei 2 nach dem Komma sind, es ist für eine Prozentzahl ein bisschen groß, aber hier dann doch schon passend. Insofern der SQL-Server 'castet' das, je nachdem wo ich den Aufruf verwende, dann um. Innerhalb der Funktion lege ich einige Variablen an, unter anderem eine mit dem Namen @l, da speichere ich die Länge der Zeichenkette. Dann entsprechend @c, weil es für mich ein Zähler ist und ein Zähler für die Vokale und etwas, was ich zum Schluss dann zurückgeben kann. Als Nächstes durchlaufe ich die komplette Zeichenkette und schaue entsprechend, ob der Buchstabe den ich an der aktuellen Position habe, ein Vokal ist oder nicht. Das mache ich hier mit dieser WHILE-Schleife und hier mit diesem Test 'IF SUBSTRING' @String, an der Position @c, ein Zeichen in dieser Menge. Groß- und Kleinschreibung ist egal. Wenn das so ist, dann wird der Zähler für die Vokale um 1 erhöht. Auf jeden Fall wird aber die aktuelle Position erhöht, damit habe ich quasi eine Schleife, die über den String durchläuft. Da der SQL-Server nur WHILE-Schleifen unterstützt, es ist nicht besonders schön aber immerhin so machbar. Wenn ich damit fertig bin, berechne ich das Ergebnis, das ist quasi die Anzahl der Vokale, geteilt durch die Gesamtlänge des Strings. Hier muss ich die Länge, die sonst ein Integer ist, als Dezimal casten,, damit ich die Nachkommastellen bekomme. Die letzte Anweisung muss hier dann entsprechend dieses RETURN sein. Ich kann diese Funktion zum Beispiel einmal anlegen und dann auf ein paar Testwerte laufen lassen. Ich sehe zum Beispiel 'Reykjavik' hat 22 Prozent Vokale, 'Abba', sind wir schon bei 50, 'abc' ist ein Drittel und ich wage gar nicht das auszusprechen, auf jeden Fall sind keine Vokale, in diesem Namen oder in diesem Begriff und insofern scheint meine Funktion richtig zu funktionieren.

SQL Server 2016: Triggers, Stored Procedures und Funktionen

Nutzen Sie in SQL Server Trigger, gespeicherte Prozeduren, Late Binding, Fehlerbehandlung sowie Scalar- und Tabellenwertfunktionen.

3 Std. 12 min (44 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:08.08.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!