DB2创建function(一)
时间:2014-05-19 08:05:28
收藏:0
阅读:444
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 |
CREATE FUNCTION "FAS" . "GET_ALL_NAME"
( "A_ID" BIGINT
) RETURNS
VARCHAR (9000) SPECIFIC "SQL131107190046233" --SPECIFIC名称不能与其他FUNCTION的重复 LANGUAGE SQL NOT
DETERMINISTIC EXTERNAL ACTION READS SQL DATA CALLED ON
NULL
INPUT INHERIT ISOLATION
LEVEL WITHOUT LOCK REQUEST INHERIT SPECIAL REGISTERS BEGIN ATOMIC --声明变量 DECLARE
A_CURR_ID BIGINT
DEFAULT 0 ; DECLARE
A_CURR_NAME VARCHAR (50) DEFAULT
‘‘ ; DECLARE
SRETURN VARCHAR (1000) DEFAULT
‘‘ ; --设置变量值 SET
A_CURR_NAME= ( SELECT
NAME FROM FA_DEPARTMENT WHERE
ID=A_ID); --当前名称 SET
A_CURR_ID= ( SELECT
PARENT_ID FROM
FA_DEPARTMENT WHERE
ID=A_ID); --当前名称 SET
SRETURN= ‘_‘ ||A_CURR_NAME; --WHILE循环 WHILE A_CURR_ID>0 DO SET
A_CURR_NAME= ( SELECT
NAME FROM FA_DEPARTMENT WHERE
ID=A_CURR_ID); --当前名称 SET
A_CURR_ID= ( SELECT
PARENT_ID FROM
FA_DEPARTMENT WHERE
ID=A_CURR_ID); --当前名称 SET
SRETURN= ‘_‘ ||A_CURR_NAME||SRETURN; END
WHILE; --返回值 RETURN
SRETURN; END ; |
该示例传入参数A_ID,通过A_ID查询相关数据。并将结果以字符串格式返回。
该方法可在sql语句中调用。如下
1 |
select GET_ALL_NAME(21) from
SYSIBM.SYSDUMMY1 |
可将其作为一个sql查询语句的列字段值,也可以用在where字句中
评论(0)