DB2 z / OS: не удалось создать функцию с SQLCODE = -104 - PullRequest
1 голос
/ 27 января 2011

Ниже оператор создания функции прекрасно работает в DB2 LUW, но не работает в DB2 V9.1 для 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.Кто-нибудь может дать мне подсказку?

Спасибо.

1 Ответ

0 голосов
/ 14 февраля 2011

Я обнаружил, что причина в том, что DB2 for z / OS V9 не поддерживает скалярный выбор в RETURN для SQL UDF. Синтаксис правильный, хотя. DB2 для z / OS V10 должна поддерживать это.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...