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(二)

  • 相关阅读:
    黑白棋_lduoj_dfs深搜
    lduoj_2021年初寒假训练第41场
    Git学习day02
    Git学习day01
    python学习之urllib的使用
    SQL语句之授权与收回
    PHP学习之有问题找谁
    PHP学习之没有权限修改hosts文件
    PHP学习之创建本地站点
    python学习之常见错误
  • 原文地址:https://www.cnblogs.com/senyier/p/3732246.html
Copyright © 2011-2022 走看看