首先我自定义了一个处理日期转换的函数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
请各位大神帮忙看看是什么原因!