Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Beispiele für UDFs

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 ...