Mam zadanie domowe:
W tabeli ORD w kolumnie TOTAL przechowywana jest całkowita wartość
zamówienia, powinna być ona równa sumie wszystkich zamówionych produktów
przechowywanych w tabeli ITEM (price*quantity) dla konkretnego zamówienia.
Napisz procedurę ORD_ITEM_CHECK, która będzie sprawdzała czy dane w obu
tabelach są równe. Jeśli wartości dla zamówienia będą się różniły, proszę wyświetlić
nr zamówienia, wartość zamówienia z tabeli ORD, wartości price * quantity dla
danego zamówienia oraz SUME dla danego zamówienia z tabeli ITEM. Proszę także
wyświetlić różnicę wartości z obydwu tabel
napisalem cos takiego, ale nie dziala. :( Gdzie mam blad i jak to naprawic ?
create or replace procedure ord_item_check is
cursor i_price is select price from item;
cursor i_quantity is select quantity from item;
cursor o_total is select total from ord;
uv_ilosc number;
uv_total o_total%ROWTYPE;
begin
open i_price;
open i_quantity;
loop
fetch i_price*i_quantity into uv_ilosc;
EXIT WHEN i_price%NOTFOUND;
EXIT WHEN i_quantity%NOTFOUND;
loop
open o_total
fetch o_total into uv_total;
when uv_total!=uv_ilosc
DBMS_OUTPUT.PUT_LINE('rozne');
DBMS_OUTPUT.PUT_LINE('rozne');
end loop;
close o_total;
end loop;
close i_price;
close i_quantity;
end;