IBM Books

SQL Getting Started


User-Defined Functions

As mentioned in Using Functions, DB2 Universal Database provides built-in and user-defined functions (UDF). However, this set of functions will never satisfy all requirements. Often, you need to create customized functions for particular tasks. User-defined functions allow you to create customized functions.

There are two types of user-defined functions: sourced and external.

Sourced user-defined functions allow for user-defined types to selectively reference another built-in or user-defined function that is already known to the database. You can use both scalar and column functions.

In the next example a user-defined function called MAX is created that is based on the built-in MAX column function, which takes a DECIMAL data type as input. The MAX UDF takes a PAY type as input and returns a PAY type as output.

     CREATE FUNCTION MAX(PAY) RETURNS PAY
        SOURCE MAX(DECIMAL)

External user-defined functions are written by users in a programming language. There are external scalar functions and external table functions and both are discussed in the SQL Reference.

Assuming that you have already written a function that counts the number of words in a string, you can register it with the database using the CREATE FUNCTION statement with the name WORDCOUNT. This function can then be used in SQL statements.

For example, the following statement returns employee numbers and the number of words in the ASCII form of their resumes. WORDCOUNT is an external scalar function that has been registered with the database by the user and is now being used in the statement.

 
     SELECT EMPNO, WORDCOUNT(RESUME)
        FROM EMP_RESUME
        WHERE RESUME_FORMAT = 'ascii'

For more detailed information on writing user-defined functions, refer to the Application Development Guide.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]

[ DB2 List of Books | Search the DB2 Books ]