DB2函数错误SQLCODE=-390, SQLSTATE=42887

首先我自定义了一个处理日期转换的函数FUN_RE_DATE(),函数定义代码如下:

CREATE OR REPLACE FUNCTION DW.FUN_RE_DATE(P_DATE VARCHAR(10))
RETURNS DATE
LANGUAGE SQL
BEGIN

DECLARE V_DATE DATE;
-- 定义错误处理
-- 如果发生错误,继续处理
-- 但是把V_DATE设置为2999-12-31
DECLARE CONTINUE HANDLER
FOR
SQLEXCEPTION SET V_DATE=DATE('2999-12-31');

SET V_DATE = DATE(TO_DATE(P_DATE, 'YYYYMMDD'));
RETURN V_DATE;
END

然后使用该函数:
SELECT FDM.FUN_RE_DATE('20121212') FROM SYSIBM.DUAL

报错信息如下:
DB2 SQL Error: SQLCODE=-390, SQLSTATE=42887, SQLERRMC=FDM.FUN_RE_DATE;SQL161110102436353, DRIVER=3.50.152
消息: The function "FDM.FUN_RE_DATE" resolved to specific function "SQL161110102436353" that is not valid in the context where it is used.. SQLCODE=-390, SQLSTATE=42887, DRIVER=3.50.152

请各位大神帮忙看看是什么原因!

https://zhidao.baidu.com/question/1384254080685373620.html

values( FDM.FUN_RE_DATE('20121212') );    这样试试