【问题标题】:DB2 z/OS: Create function failed with SQLCODE = -104DB2 z/OS:创建函数失败,SQLCODE = -104
【发布时间】:2011-01-27 10:26:23
【问题描述】:

下面的 create function 语句在 DB2 LUW 上运行良好,但在 DB2 V9.1 for z/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_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 语句有什么问题。谁能给我一个线索?

谢谢。

【问题讨论】:

    标签: db2


    【解决方案1】:

    我发现原因是 DB2 for z/OS V9 不支持 SQL UDF 在 RETURN 中的标量选择。虽然语法是正确的。 DB2 for z/OS V10 应该支持这一点。

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多