用户定义函数 (UDF) 是创建 SQL 函数, 并因此添加至随 DB2 一起提供的内置函数集的方法。尤其是,可创建专门对图象、音频和视频执行操作的 UDF。例如,可创建 UDF 来获取视频的压缩格式,并返回音频的采样速率。这提供了一种方法来定义特殊类型的对象的行为。例如,用为视频类型创建的函数来表达视频对象的行为, 用为图象类型创建的函数来表达图象对象的行为。
用 SQL CREATE FUNCTION 语句创建 UDF。该语句指定此 UDF 所适用的数据类型。例如,以下语句创建名为 map_scale 的 UDF,它计算地图的比例尺。注:该 UDF 将地图标识为可对其应用的数据类型。实现函数的代码是用 C 语言编写的,在 EXTERNAL NAME 子句中标识:
CREATE FUNCTION map_scale (map) RETURNS SMALLINT EXTERNAL NAME 'scale!map' LANGUAGE C PARAMETER STYLE DB2SQL NO SQL DETERMINISTIC NO EXTERNAL ACTION
可象使用内置函数那样在 SQL 语句中使用 UDF。在下例中, SQL SELECT 语句中使用 map_scale UDF 来返回存储在名为 grid 的表列中的地图的比例尺:
SELECT map_scale (grid) FROM places WHERE location='SAN JOSE, CALIFORNIA'
每个 DB2 Extender 都为其类型创建一组 UDF,即,特定于图象、 特定于音频和特定于视频的 UDF。可在 SQL 语句中使用这些 UDF 来请求 Extender 功能, 如将图象存储在表中、获取视频的帧速率,或添加关于音频的注解。