zoukankan      html  css  js  c++  java
  • DB2创建function(一)

    案例一:根据传入的值返回一个满足条件的值。适用于查询的字段(经过较复杂逻辑得出)

    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语句中调用。如下:

    select GET_ALL_NAME(21) from SYSIBM.SYSDUMMY1

    使用场景:可将其作为一个sql查询语句的列字段值,也可以用在where字句中。


    若需要Function返回结果集请看:DB2创建function(二)

  • 相关阅读:
    MySQL用户管理
    linux下杀死进程(kill)的N种方法
    Windows查看某个端口被谁占用
    SQL语句
    CentOS6.5 安装mysql-5.7.9
    Linux服务器安全之用户密钥认证登录
    Linux添加/删除用户和用户组
    linux命令killall 、kill 、pkill 命令详解
    linux下cat命令详解
    linux之sed用法
  • 原文地址:https://www.cnblogs.com/senyier/p/3732246.html
Copyright © 2011-2022 走看看