ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

DB2 存储函数

2022-03-29 13:33:30  阅读:185  来源: 互联网

标签:存储 函数 GET -- WHEN SDATE CHAR DB2 DOT


创建fuction:根据年份和周数,获取到当周开始日期

--  Generate SQL 
--  Version:                       V7R1M0 100423 
--  Generated on:                  03/29/22 12:08:46 
--  Relational Database:           S685D13X 
--  Standards Option:              DB2 for i 
SET PATH "QSYS","QSYS2","SYSPROC","SYSIBMADM","KT" ; 
  
CREATE FUNCTION KTGL.GET_DOT_SDATE ( INYY NUMERIC(4, 0) , INWW NUMERIC(2, 0) ) 
    RETURNS CHAR(10)   
    LANGUAGE SQL 
    SPECIFIC KTGL.GET_DOT_SDATE 
    NOT DETERMINISTIC 
    READS SQL DATA 
    CALLED ON NULL INPUT 
    SET OPTION  ALWBLK = *ALLREAD , 
    ALWCPYDTA = *OPTIMIZE , 
    COMMIT = *NONE , 
    DECRESULT = (31, 31, 00) , 
    DFTRDBCOL = *NONE , 
    DYNDFTCOL = *NO , 
    DYNUSRPRF = *USER , 
    SRTSEQ = *HEX   
    BEGIN 
---------------------------------------------------------------------------- 
-- 
---------------------------------------------------------------------------- 
------------------------------------------------------------- 
-- WORK AREAS 
------------------------------------------------------------- 
DECLARE W_RESULT CHAR ( 10 ) ; 
  
-------------------------------------------- 
-- SELCODE DEFINE 
-------------------------------------------- 
SET W_RESULT = ( 
  SELECT CHAR ( DATE + ( WEEK + DAY ) DAY ) AS DATE FROM ( 
  SELECT DATE ( TIMESTAMP_FORMAT ( CHAR ( INYY || '0101' ) , 'YYYYMMDD' ) ) DATE 
      , ( CAST ( INWW AS INTEGER ) - 1 ) * 7 WEEK 
      , CASE DAYNAME ( TIMESTAMP_FORMAT ( CHAR ( INYY || '0101' ) , 'YYYYMMDD' ) ) 
          WHEN '星期一' THEN 0 
          WHEN '星期二' THEN - 1 
          WHEN '星期三' THEN - 2 
          WHEN '星期四' THEN - 3 
          WHEN '星期五' THEN 3 
          WHEN '星期六' THEN 2 
          WHEN '星期天' THEN 1 END AS DAY 
  FROM SYSIBM . SYSDUMMY1 
  ) A 
) ; 
  
RETURN W_RESULT ; 
  
END  ; 
  
GRANT ALTER , EXECUTE   
ON SPECIFIC FUNCTION KTGL.GET_DOT_SDATE 
TO QUSER ;

 

使用function

SELECT KTGL.GET_DOT_SDATE(2021,01)
  FROM SYSIBM.SYSDUMMY1 ;  --DB虚拟表

 

标签:存储,函数,GET,--,WHEN,SDATE,CHAR,DB2,DOT
来源: https://www.cnblogs.com/shanghaojia0923/p/16071233.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有