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