FreeAdhocUDF für InterBase und FireBird in deutschin englishen françaisen española português
homeprevious pagecontentnext pagelast page Seite empfehlen • advice website •Forum Mailing-Liste • mailinglist • liste de diffusionwas ich vermisse • what I missed •eMail Kommentar • eMail commentprintsitemap
Überflüssig gewordene Funktionen der FreeadhocUDF

Durch die Weiterentwicklung wurden bestimmte Funktionen überflüssig, weil sie im “Standard-Wortschatz” eingebaut wurden (NICHT die UDFs z.B. aus der ib_udf oder der fbudf).
Es ist zu empfehlen, auf die “eingebauten” Funktionen umzusteigen bzw. diese zu benutzen, da sie (theoretisch) schneller aber vor allem sicherer ausgeführt werden (jeder Aufruf einer UDF birgt die Möglichkeit eines Server-Absturzes - z.B. durch falsche Parameter).

Bitte Beachten Sie, dass teilweise die Syntax anders als bei den FreeAdhocUDF-Funktionen ist!

InterBase

Ab InterBase 6.0
F_YEAR ersetzbar durch EXTRACT(YEAR FROM ...)
    SELECT F_YEAR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(YEAR FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_MONTH ersetzbar durch EXTRACT(MONTH FROM ...)
    SELECT F_MONTH(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(MONTH FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_DAYOFMONTH ersetzbar durch EXTRACT(DAY FROM ...)
    SELECT F_DAYOFMONTH(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(DAY FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_HOUR ersetzbar durch EXTRACT(HOUR FROM ...)
    SELECT F_HOUR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(HOUR FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_MINUTE ersetzbar durch EXTRACT(MINUTE FROM ...)
    SELECT F_MINUTE(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_SECOND ersetzbar durch EXTRACT(SECOND FROM ...)
    SELECT F_SECOND(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_DAYOFWEEK ersetzbar durch EXTRACT(WEEKDAY FROM ...)
    SELECT F_DAYOFWEEK(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(WEEKDAY FROM CURRENT_TIMESTAMP) + 1 FROM RDB$DATABASE;
    Anmerkung:
    Die FreeAdhocUDF Funktion F_DAYOFWEEK fängt (deutsch) an mit Sonntag = 1 während hingegen
    EXTRACT(WEEKDAY ...) bei Sonntag=0 beginnt. Dies kann man so wie oben gezeigt korrigieren.
F_DAYOFYEAR ersetzbar durch EXTRACT(YEARDAY FROM ...)
    SELECT F_DAYOFYEAR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(YEARDAY FROM CURRENT_TIMESTAMP)  FROM RDB$DATABASE;
Ab InterBase 7.5
CASE kann F_IF ersetzen
COLLESCE und
NULLIF ersetzen Abfragen auf NULL und F_STRINGLENGTH(..) = 0 bzw. ... = 0
Ab InterBase 2007
Viele BLOb-Funktionen sind nun überflüssig, weil InterBase2007 jetzt BLObs wie "normale" Strings ansprechen kann
F_BLOBASPCHAR Umwandlung überflüssig, BLOBs können direkt "verarbeitet" werden
F_STRBLOB Umwandlung überflüssig, BLOBs können direkt "verarbeitet" werden
F_BLOB2EXCEL ersetzbar durch F_STR2EXCEL
F_BLOBCAT ersetzbar durch || (wie bei Strings)
F_BLOBCATSTR ersetzbar durch || (wie bei Strings)
F_BLOBLEFT ersetzbar durch F_LEFT
F_BLOBMID ersetzbar durch F_MID
F_BLOBRIGHT ersetzbar durch F_RIGHT
F_BLOBREPLACESTRING ersetzbar durch F_REPLACESTRING
F_BLOBSUBSTR ersetzbar durch F_SUBSTR
F_BLOBWORDCOUNT ersetzbar durch F_WORDCOUNT
F_BLOBCOMPARE überflüssig, BLOBs können nun wie Strings direkt verglichen werden
F_BLOBSTRPOS ersetzbar durch F_STRPOS
 
FireBird

Ab FireBird 1.0
F_YEAR ersetzbar durch EXTRACT(YEAR FROM ...)
    SELECT F_YEAR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(YEAR FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_MONTH ersetzbar durch EXTRACT(MONTH FROM ...)
    SELECT F_MONTH(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(MONTH FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_DAYOFMONTH ersetzbar durch EXTRACT(DAY FROM ...)
    SELECT F_DAYOFMONTH(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(DAY FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_HOUR ersetzbar durch EXTRACT(HOUR FROM ...)
    SELECT F_HOUR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(HOUR FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_MINUTE ersetzbar durch EXTRACT(MINUTE FROM ...)
    SELECT F_MINUTE(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_SECOND ersetzbar durch EXTRACT(SECOND FROM ...)
    SELECT F_SECOND(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP) FROM RDB$DATABASE;
F_DAYOFWEEK ersetzbar durch EXTRACT(WEEKDAY FROM ...)
    SELECT F_DAYOFWEEK(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(WEEKDAY FROM CURRENT_TIMESTAMP) + 1 FROM RDB$DATABASE;
    Anmerkung:
    Die FreeAdhocUDF Funktion F_DAYOFWEEK fängt (deutsch) an mit Sonntag = 1 während hingegen
    EXTRACT(WEEKDAY ...) bei Sonntag=0 beginnt. Dies kann man so wie oben gezeigt korrigieren.
F_DAYOFYEAR ersetzbar durch EXTRACT(YEARDAY FROM ...)
    SELECT F_DAYOFYEAR(CURRENT_TIMESTAMP) FROM RDB$DATABASE;
    ist identisch mit
    SELECT EXTRACT(YEARDAY FROM CURRENT_TIMESTAMP)  FROM RDB$DATABASE;
F_MID ersetzbar durch SUBSTRING
    SELECT 'cdefg' AS ISCORRECT, F_MID('abcdefghijk', 2 ,5) FROM RDB$DATABASE
     ist identisch mit
     SELECT 'cdefg' AS ISCORRECT, SUBSTRING('abcdefghijk' FROM 3 FOR 5) FROM RDB$DATABASE 
Ab FireBird 1.5 
CASE kann F_IF ersetzen
COLLESCE und
NULLIF ersetzen Abfragen auf NULL und F_STRINGLENGTH(..) = 0 bzw. ... = 0
Ab FireBird 2.0 
F_UPPER ersetztbar durch UPPER - auch deutsche Sonderzeichen
    SELECT 'MÜLLER', F_UPPER('Müller') FROM RDB$DATABASE;
    ist identisch mit
    SELECT 'MÜLLER', UPPER('Müller') FROM RDB$DATABASE;
F_LOWER ersetztbar durch LOWER - auch deutsche Sonderzeichen
    SELECT 'müller', F_LOWER('MÜLLER') FROM RDB$DATABASE;
    ist identisch mit
    SELECT 'müller', LOWER('MÜLLER') FROM RDB$DATABASE;
F_RTRIM ersetzbar durch TRIM
    SELECT F_RTRIM('abcde   ') FROM RDB$DATABASE
     ist identisch mit
    SELECT TRIM('abcde   ') FROM RDB$DATABASE   
F_IF ersetzbar durch IIF
    SELECT F_IF(1, '>', 0, -1, 1) FROM RDB$DATABASE;
    ist identisch mit
    SELECT IIF(1 > 0, -1, 1) FROM RDB$DATABASE;
F_STRINGLENGTH ersetzbar durch CHARACTER_LENGTH und
F_STRINGLENGTH ersetzbar durch CHAR_LENGTH
    SELECT F_STRINGLENGTH('abcde') FROM RDB$DATABASE;
    ist identisch mit
    SELECT CHARACTER_LENGTH('abcde') FROM RDB$DATABASE;
    ist identisch mit
    SELECT CHAR_LENGTH('abcde') FROM RDB$DATABASE
Ab FireBird 2.1
Viele BLOb-Funktionen sind nun überflüssig, weil FireBird 2.1 jetzt BLObs wie "normale" Strings ansprechen kann
F_BLOBASPCHAR Umwandlung überflüssig, BLOBs können direkt "verarbeitet" werden
F_STRBLOB Umwandlung überflüssig, BLOBs können direkt "verarbeitet" werden
F_BLOB2EXCEL ersetzbar durch F_STR2EXCEL
F_BLOBCAT ersetzbar durch || (wie bei Strings)
F_BLOBCATSTR ersetzbar durch || (wie bei Strings)
F_BLOBLEFT ersetzbar durch F_LEFT oder durch die eingebaute Funktion LEFT
F_BLOBMID ersetzbar durch F_MID 
F_BLOBRIGHT ersetzbar durch F_RIGHT oder durch die eingebaute Funktion RIGHT
F_BLOBREPLACESTRING ersetzbar durch F_REPLACESTRING
F_BLOBSUBSTR ersetzbar durch F_SUBSTR
F_BLOBWORDCOUNT ersetzbar durch F_WORDCOUNT
F_BLOBCOMPARE überflüssig, BLOBs können nun wie Strings direkt verglichen werden
F_BLOBSTRPOS ersetzbar durch F_STRPOS
eingebaute Funktionen
F_ABS (F_DOUBLEABS, F_INTEGERABS) ersetzbar durch die eingebaute Funktion ABS
F_ACOS ersetzbar durch die eingebaute Funktion ACOS
F_CHR (F_CHARACTER) ersetzbar durch die eingebaute Funktion ASCII_CHAR
F_ORD ersetzbar durch die eingebaute Funktion ASCII_VAL
F_ASIN ersetzbar durch die eingebaute Funktion ASIN
F_ATAN ersetzbar durch die eingebaute Funktion ATAN
F_ATAN2 ersetzbar durch die eingebaute Funktion ATAN2
F_BIN_AND ersetzbar durch die eingebaute Funktion BIN_AND
F_BIN_OR ersetzbar durch die eingebaute Funktion BIN_OR
Anmerkung: BIN_NOT wurde wohl vergessen ... gibt's nicht
F_BIN_SHL ersetzbar durch die eingebaute Funktion BIN_SHL
F_BIN_SHR ersetzbar durch die eingebaute Funktion BIN_SHR
F_BIN_XOR ersetzbar durch die eingebaute Funktion BIN_XOR
F_CEILING ersetzbar durch die eingebaute Funktion CEIL | CEILING
F_COS ersetzbar durch die eingebaute Funktion COS
F_COSH ersetzbar durch die eingebaute Funktion COSH
F_COT ersetzbar durch die eingebaute Funktion COT
F_ADDYEAR, F_ADDMONTH, F_ADDWEEK, F_ADDDAY, F_ADDHOUR, F_ADDMINUTE, F_ADDSECOND
ersetzbar durch die eingebaute Funktion DATEADD - Achtung: völlig andere Syntax
F_AGEINYEARS, F_AGEINMONTHS, F_AGEINWEEKS, F_AGEINDAYS, F_AGEINHOURS, F_AGEINMINUTES, F_AGEINSECONDS ersetzbar durch die eingebaute Funktion DATEDIFF - bisher nicht testbar, da Bug - Achtung: völlig andere Syntax
F_IF ersetzbar durch die eingebaute Funktion DECODE - Achtung: völlig andere Syntax
F_EXP ersetzbar durch die eingebaute Funktion EXP
F_FLOOR ersetzbar durch die eingebaute Funktion FLOOR
GEN_UUID erzeugt eine UUID nicht nach RFC4122
F_LEFT ersetzbar durch die eingebaute Funktion LEFT
F_LN ersetzbar durch die eingebaute Funktion LN
F_LOG ersetzbar durch die eingebaute Funktion LOG - Achtung: Parameter vertauscht
F_LOG10 ersetzbar durch die eingebaute Funktion LOG10
F_PADLEFT ersetzbar durch die eingebaute Funktion  LPAD - Achtung: wenn der String, mit dem aufgefüllt werden soll aus mehr als einem Zeichen besteht UND der Ergebnisstring ist zu lang, schneidet LPAD rechts vom aufzufüllenden String ab, F_PADLEFT links davon
F_MAX (F_MAXNUM) ersetzbar durch die eingebaute Funktion MAXVALUE
F_MIN (F_MINNUM) ersetzbar durch die eingebaute Funktion MINVALUE
F_MODULO ersetzbar durch die eingebaute Funktion MOD
F_STRSTUFF ersetzbar durch die eingebaute Funktion OVERLAY - Achtung: völlig andere Syntax
F_PI ersetzbar durch die eingebaute Funktion PI
F_STRPOS ersetzbar durch die eingebaute Funktion POSITION - Achtung: völlig andere Syntax
F_POWER ersetzbar durch die eingebaute Funktion POWER
F_RAND ersetzbar durch die eingebaute Funktion RAND
F_REPLACE ersetzbar durch die eingebaute Funktion REPLACE
F_REVERSE ersetzbar durch die eingebaute Funktion REVERSE
F_RIGHT ersetzbar durch die eingebaute Funktion RIGHT
F_ZAHLRUNDEN (F_ROUNDCOMMON) ersetzbar durch die eingebaute Funktion ROUND - Achtung: die eingebaute Funktion ROUND kann auch auf Vorkommastellen runden
F_RPADRIGHT (F_RIGHTPAD) ersetzbar durch die eingebaute Funktion RPAD
F_SIGN ersetzbar durch die eingebaute Funktion SIGN
F_SIN ersetzbar durch die eingebaute Funktion SIN
F_SINH ersetzbar durch die eingebaute Funktion SINH
F_SQRT ersetzbar durch die eingebaute Funktion SQRT
F_TAN ersetzbar durch die eingebaute Funktion TAN
F_TANH ersetzbar durch die eingebaute Funktion TANH
F_TRUNCATE ersetzbar durch die eingebaute Funktion TRUNC      
nach oben • go top • vers le hautnächste Seite • next page • prochain site