2017-12-27 19 views
0

Weiß jemand, wie ich dieses Problem unten lösen kann?Fehler in DB2 (KARDINALITÄT)

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] 

Fehlermeldung

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

I DB2 V11.1 bin mit.

Antwort

0

Die CARDINALITY-Klausel ist nicht mit der PIPE-Anweisung kompatibel. Wenn Sie die Kardinalitätsklausel entfernen, wird Ihre Funktion kompiliert.

Die PIPE-Anweisung gibt höchstens 1 Zeile gleichzeitig zurück, daher ist die Kardinalitätsklausel nicht relevant.

Sie können die CARDINALITY-Klausel mit einer externen Tabellenfunktion verwenden.

+0

Danke mao! Ich wusste das nicht! In den nächsten Fragen werde ich Ihren Anweisungen folgen. – Luiz