A UDF is (also) a User Defined Function in the InterBase relational database server.
The executable code for a UDF is in a shared library, a shared object on Linux and Unix, or a dynamic link library (DLL) on Windows, which is loaded by the server when necessary. The code is usually written in C, but other languages are also possible, for example Delphi on Windows.
UDF:s serve a different purpose than stored procedures, which are also supported by InterBase. An UDF cannot perform database operations, such as retrieving and updating data. Instead, UDF:s are usually used to create new string, date and arithmetic operations, soundex comparisons etc, since there are few built-in SQL functions in the server.
A limitation of UDF:s is that NULL values cannot be directly passed to or from them.
In a SELECT SQL query, a UDF call can be made in any place where a built-in SQL function can be used, but a stored procedure call can only be in the FROM clause.