佐助尾兽:创建和使用 SQL用户定义函数

来源:百度文库 编辑:中财网 时间:2024/05/10 12:41:14
1 、可以创建用户定义函数来扩展内置的 DB2 函数。例如,创建计算复杂的
算术表达式或操作字符串的函数,然后在 SQL 语句中像对待任何现有的内置函
数一样引用这些函数。
[ 示例 ]-[ 用户自定义函数 ] :
输入半径,返回圆的面积:
CREATE function ca (r DOUBLE)
RETURNS DOUBLE
LANGUAGE SQL
CONTAINS SQLNO EXTERNAL ACTION
DETERMINISTIC
RETURN 3.14159 * (r * r);
说明: NO EXTERNAL ACTION 子句指出这个函数不会对数据库管理程序不管 理
的对象的状态有任何影响。 DETERMINISTIC 关键字指出这个函数对于给定的参 数
值总是返回相同的结果。
调用自定义函数示例:
方法 1 :
db2 SELECT ca(2.5) AS area FROM sysibm.sysdummy1
方法 2 :
db2 values ca(2.5)
2 、还可以创建用户定义的表函数,它接受零个或更多的输入参数并以表的 形
式返回数据。表函数只能用在 SQL 语句的 FROM 子句中。
[ 示例 ]-[ 返回结果集的用户自定义函数 ] :
CREATE FUNCTION jobemployees (job VARCHAR(8))
RETURNS TABLE (
empno CHAR(6),
firstname VARCHAR(12),
lastname VARCHAR(15)
)
LANGUAGE SQL
READS SQL DATA
NO EXTERNAL ACTION
DETERMINISTIC
RETURN
SELECT empno, firstnme, lastname
FROM employee
WHERE employee.job = jobemployees.job;调用自定义函数示例:
db2 SELECT * FROM TABLE(jobemployees('CLERK')) AS clerk