[sql pl] pytanie o wyswietlanie wyniku procedury

0

Witajcie.

Stworzylem procedure ktora wyglada nastepujaco:

CREATE OR REPLACE PROCEDURE odejmij
IS
CURSOR kursor_odejmij IS

SELECT P.NAZWA, P.CENASPRZEDAŻY
FROM TOWAR P
WHERE nazwa LIKE 'Telewizor%'

FOR UPDATE OF P.CENASPRZEDAŻY;
rek_CenaSprzedaży kursor_odejmij%ROWTYPE;
BEGIN
OPEN kursor_odejmij;
LOOP
FETCH kursor_odejmij INTO rek_CenaSprzedaży;
EXIT WHEN kursor_odejmij%NOTFOUND;
IF rek_CenaSprzedaży.CENASPRZEDAŻY > 2000 THEN
UPDATE TOWAR SET CENASPRZEDAŻY = CENASPRZEDAŻY - 100
WHERE CURRENT OF kursor_odejmij;
END IF;
END LOOP;
CLOSE kursor_odejmij;
COMMIT;
END;

co nalezy zrobic aby wyswietlal sie wynik tej procedury.
Po wprowadzeniu procedury gdy wpisze select * grom towar cena widnieje nadal taka sama jak wczesniej przed wprowadzeniem procedury. Dzieki i pozdrawiam

0

Czy tu czasem nie zachodzi taka sytuacja że wyświetlasz kursor z pewnej tabelki przez procedurę przechowywaną, która jednocześnie zmienia dane w tej samej tabelce? O ile pamiętam to jest zabronione.

0

czy ten kursor jest tu konieczny?

UPDATE TOWAR SET CENASPRZEDAŻY = CENASPRZEDAŻY - 100
WHERE nazwa LIKE 'Telewizor%';

I tyle.

Czy czasem to, że dajesz commit po zamknięciu kursora nie jest problemem?

1 użytkowników online, w tym zalogowanych: 0, gości: 1