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 FORSELECT Auftragsnummer, Kundenname FROM AuftraegeWHERE FktSchema.GetCurrentYear(Auftragstermin) = 2014Auslaufjahr auf das übernächste Jahr setzen (Schema
FktSchemaist voreingestellt):UPDATE Modell.ExemplarSET 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 ...