Temat: Problem z kursorek
Witam,
mam dość kłopotliwy i zapewne łatwy do rozwiązania błąd, który od kilku dni spędza mi sen z powiek. Mam taki oto kod:
CREATE FUNCTION czas_pracy (integer,date,date)
RETURNS time
AS $$
    DECLARE 
        id ALIAS FOR $1;
        od ALIAS FOR $2;
        do ALIAS FOR $3;
        razem time:='00:00'; 
        id_motor integer; 
        data_k date; 
        cz_wyj time; 
        cz_przyj time;
    
    BEGIN
    --BEGIN TRANSACTION;
    DECLARE cz_pr CURSOR
        FOR SELECT id_motorniczy, data_kurs, czas_wyjazd, czas_przyjazd FROM kurs;
    --OPEN cz_pr;
    FETCH 1 FROM cz_pr INTO id_motor, data_k, cz_wyj, cz_przyj;
    WHILE FOUND LOOP
        IF id_motor=id AND data_k BETWEEN od AND do AND cz_przyj IS NOT NULL
        THEN
            razem:=razem + (cz_przyj - cz_wyj);
        END IF;
        FETCH 1 FROM cz_pr INTO id_motor, data_k, cz_wyj, cz_przyj;
    END LOOP;
    CLOSE cz_pr;
    --COMMIT TRANSACTION;
    RETURN razem;
    END;
$$ LANGUAGE 'PLPGSQL';
i nie mam zielonego pojęcia czemu nie działa, więc mam taką małą prośbę - moglibyście na to zerknąć i pomóc mi rozwiązać ten problem? 
Z góry dzięki za poświęcenie czasu ![]()