ALTER FUNCTION "DBA"."liczba_zabiegow"() RETURNS INTEGER NOT DETERMINISTIC BEGIN DECLARE @liczbaZabiegow INTEGER; DECLARE @typzabiegu CHAR(100); DECLARE @idzabiegu INTEGER; DECLARE @lbypass INTEGER; DECLARE @lwyciec INTEGER; DECLARE @zmienna INTEGER; DECLARE kursor1 CURSOR FOR SELECT Z.id_zabieg, Z.nazwa_zabieg INTO @idzabiegu,@typzabiegu FROM ZABIEG Z; SET @lbypass=0; SET @lwyciec=0; SET @zmienna=0; SELECT count(Z.id_zabieg) INTO @liczbaZabiegow FROM ZABIEG Z; OPEN kursor1; petla: LOOP FETCH NEXT kursor1 INTO @idzabiegu,@typzabiegu; IF @typzabiegu='bypass' THEN SET @lbypass=@lbypass+1; ENDIF; IF @typzabiegu='wyciecie' THEN SET @lwyciec=@lwyciec+1; ENDIF; SET @zmienna=@zmienna+1; IF @zmienna=@liczbaZabiegow THEN LEAVE petla; ENDIF; END LOOP; CLOSE kursor1; MESSAGE 'liczba bypassow = ' || @lbypass TO CLIENT; MESSAGE 'liczba wyciec = ' || @lwyciec TO CLIENT; RETURN @liczbaZabiegow; END