2017-12-27 30 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] 

오류 메시지 나 DB2의 V11.1을 사용하고

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

.

답변

0

CARDINALITY 절은 PIPE 문과 호환되지 않습니다. 카디널리티 절을 제거하면 함수가 컴파일됩니다.

PIPE 문은 한 번에 최대 1 행을 반환하므로 카디널리티 절이 적합하지 않습니다.

외부 테이블 함수와 함 2 CARDINALITY 절을 사용할 수 있습니다.

+0

감사합니다. mao! 나는 그것을 몰랐다! 다음 쿼리에서 나는 당신의 지시를 따를 것입니다. – Luiz