Beispiel 1: Jahreszahl ermitteln
Die folgende UDF GetCurrentYear
liefert das aktuelle Jahr als Zahl. Sie enthält keine SQL-Anweisungen zum Lesen oder Ändern von Daten.
CREATE FUNCTION GetCurrentYear (IN time TIMESTAMP(3)) RETURNS DECIMAL(4) CONTAINS SQL RETURN EXTRACT (YEAR FROM time)
Die UDF GetCurrentYear
im Schema FktSchema
wird verwendet:
Alle Aufträge des Jahres 2014 ermitteln:
DECLARE cursor_1 CURSOR FOR
SELECT Auftragsnummer, Kundenname FROM Auftraege
WHERE FktSchema.GetCurrentYear(Auftragstermin) = 2014
Auslaufjahr auf das übernächste Jahr setzen (Schema
FktSchema
ist voreingestellt):UPDATE Modell.Exemplar
SET Auslaufjahr = GetCurrentYear(CURRENT_TIMESTAMP(3)) + 2
Beispiel 2: Preis eines Artikels ermitteln
CREATE FUNCTION ARTIKEL_PREIS (IN P_ARTNR INTEGER) RETURNS NUMERIC(8,2) READS SQL DATA BEGIN RETURN (SELECT PREIS FROM TEILE.ARTIKEL WHERE ARTNR = P_ARTNR); END
Beispiel 3: Anonymisieren einer Kreditkarten-Nummer
Die folgende UDF mask_credit_card_number
anonymisiert eine Kreditkarten-Nummer durch Maskieren der letzten 4 Stellen:
CREATE FUNCTION mask_credit_card_number(IN card_no CHAR(16)) RETURNS CHAR(16) CONTAINS SQL RETURN SUBSTRING(card_no FROM 1 FOR 12) || '****'
Eine Mitteilung könnte damit so gestaltet werden:
Select surname, first_name, mask_credit_card_number(credit_card_number)
from ...