明月千度 2019-04-28 20:38 采纳率: 50%
浏览 615
已采纳

运行DB2的自定义函数出现问题,求教

最近在学DB2,碰到自定义函数,但是有错误,网上查了,一脸懵逼。希望来个大神帮我补补课

CREATE OR REPLACE FUNCTION "F_GET_MAX_KEY" ("IC_NAME" VARCHAR(255) )
  RETURNS VARCHAR(255)
BEGIN
  /**
  描述:根据序列生成表的流水主键
  参数:IC_NAME:标识名(忽略大小写).
       'SHORT':YYMMDD+序列SEQ_MAXKEY值;
       'LONG':YYYYMMDDHHMISSFF3+序列SEQ_MAXKEY值;
       其他:YYYYMMDDHHMISS+序列SEQ_MAXKEY值;
  **/
  DECLARE RESULTSTR VARCHAR (255) DEFAULT '';
  SET IC_NAME = UPPER(IC_NAME) ;
  IF UPPER(IC_NAME) = 'SHORT' THEN
      SELECT TO_CHAR (CURRENT TIMESTAMP, 'YYMMDD') || LPAD (NEXTVAL FOR SEQ_MAXKEY, 4, '0')
      INTO RESULTSTR 
      FROM SYSIBM.DUAL;
  ELSEIF UPPER(IC_NAME) = 'LONG' THEN
      SELECT TO_CHAR (CURRENT TIMESTAMP, 'YYYYMMDDHHMISSFF3') || LPAD (NEXTVAL FOR SEQ_MAXKEY, 4, '0')
      INTO RESULTSTR
      FROM SYSIBM.DUAL;
  ELSE
      SELECT TO_CHAR (SYSDATE, 'YYYYMMDDHHMISS') || LPAD (NEXTVAL FOR SEQ_MAXKEY, 4, '0')
      INTO RESULTSTR
      FROM SYSIBM.DUAL;
  END IF;
  RETURN RESULTSTR;
END;

图片说明

在DBeaver 里运行sql脚本出现如下问题:

图片说明

请问大神,怎么解决?

  • 写回答

1条回答

  • 明月千度 2019-04-30 17:30
    关注

    我在DBeaver中新建了一个函数脚本,把函数复制进去, end 后面去掉分号 ,鼠标要把函数全部选中 右击执行 执行sql语句。成功

    此问答结束

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Labview机器人问题
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示