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字句中