2017-12-27 154 views
0

有人知道我该如何解决这个问题?DB2中的错误(CARDINALITY)

CREATE OR REPLACE FUNCTION PRDLIB.COUNTER(sROWS INT) 
RETURNS TABLE (
ROW_ID INT) 
LANGUAGE SQL 
CARDINALITY 50 
DETERMINISTIC 
BEGIN 
    DECLARE t3 INT default 0; 
    WHILE t3>sROWS DO 
     SET t3=t3+1; 
     PIPE (t3); 
    END WHILE; 
    RETURN; 
[email protected] 

错误消息

Multiple or conflicting keywords involving the "CARDINALITY" clause are present.. SQLCODE=-628, SQLSTATE=42613, DRIVER=4.18.60 

我使用DB2 V11.1。

回答

0

CARDINALITY子句​​与PIPE语句不兼容。如果你删除了基数子句,那么你的函数将被编译。

PIPE语句一次最多返回1行,所以基数子句不相关。

您可以将CARDINALITY子句​​与外部表函数结合使用。

+0

谢谢毛!我不知道!在接下来的查询中,我会按照你的指示。 – Luiz