【发布时间】:2019-05-27 21:33:19
【问题描述】:
您好,我在管理 DB2 中的 CREATE FUNCTION 调用中的 CASE WHEN 或 IF 语句时遇到问题 我试过这个声明:
CREATE OR REPLACE FUNCTION NAECHSTES_DATUM(PARAM1 CHAR(6), PARAM2 DATE)
RETURNS DATE
LANGUAGE SQL
BEGIN
DECLARE BASEDATE DATE;
DECLARE THATDATE DATE;
SET BASEDATE = TO_DATE(CONCAT(PARAM1,CAST(YEAR(PARAM2) AS CHAR(4))),'DD.MM.YYYY');
IF (BASEDATE >= PARAM2)
THEN SET THATDATE = BASEDATE;
ELSE SET THATDATE = BASEDATE + 1 YEAR;
END IF;
RETURN THATDATE;
END
我收到这个错误
[-104] Auf "+ 1 YEAR" folgte das unerwartete Token "END-OF-STATEMENT"。莫格利切代币:“ END IF".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.14.113
当我使用 CASE WHEN 时的类似结果。
你知道问题出在哪里吗?
【问题讨论】:
标签: function if-statement db2 case