DB2 z/OS:Create函数失败,SQLCODE=-104
下面的create function语句在DB2LUW上运行良好,但在DB2V9.1forz/OS上失败DB2 z/OS:Create函数失败,SQLCODE=-104,db2,Db2,下面的create function语句在DB2LUW上运行良好,但在DB2V9.1forz/OS上失败 CREATE FUNCTION PLAT_FN_GASN ( OBJID CHARACTER(18) ) RETURNS CHARACTER(18) LANGUAGE SQL READS SQL DATA DETERMINISTIC NO EXTERNAL ACTION RETURN SELECT SRCOBJID FROM PLAT_V_RELA
CREATE FUNCTION PLAT_FN_GASN (
OBJID CHARACTER(18) )
RETURNS CHARACTER(18)
LANGUAGE SQL
READS SQL
DATA DETERMINISTIC
NO EXTERNAL ACTION
RETURN SELECT SRCOBJID
FROM PLAT_V_RELATIONSHIPS AS R2
WHERE RELTYPENAME = 'ApplyTaskRefOutputSpec' AND MODELNAME = 'MiningTask'
AND TGTOBJID = (SELECT SRCOBJID
FROM PLAT_V_RELATIONSHIPS AS R1
WHERE RELTYPENAME = 'ApplyOutputHasContentItems' AND MODELNAME = 'MiningTask'
AND TGTOBJID = OBJID)
错误消息是:
ILLEGAL SYMBOL "SRCOBJID". SOME SYMBOLS THAT MIGHT BE LEGAL ARE: SOURCE PARAMETER STOP INHERIT RETURNS CALLED ALLOW CONTAINS. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.53.71
我不知道SQL语句出了什么问题。有人能给我一个线索吗
谢谢。我发现原因是DB2forz/OSV9不支持标量选择作为SQLUDF的回报。尽管如此,语法是正确的。DB2forz/OSV10应该支持这一点 谢谢