首页 > 代码库 > DB2创建function(一)
DB2创建function(一)
?
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字句中
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。