This compiles fine, but i don't think it got updated. Also, i have added in an exception in case there is no product number. This compiles fine, but also, it doesn't print out the error. I have tried so many times, but I'm having no luck.
ACCEPT prodno PROMPT 'Enter prodno: '
ACCEPT newprice PROMPT 'Enter new price: '
CREATE OR REPLACE PROCEDURE udpatePrice
AS
myprice PRODUCTS.PRICE%TYPE;
NO_DATA_FOUND EXCEPTION;
begin
select PRICE into myprice from PRODUCTS where PNO = &prodno;
RAISE NO_DATA_FOUND;
end;
/
begin
update PRODUCTS set PRICE = &newprice
where PNO = &prodno;
update ODETAILS set COST = &newprice * QTY
where PNO = &prodno;
UPDATE ORDERS SET ORDER_COST = (SELECT SUM(COST) FROM ODETAILS
WHERE ODETAILS.ONO = ORDERS.ONO AND ODETAILS.PNO = &prodno);
EXCEPTION
when NO_DATA_FOUND then
dbms_output.put_line('Error: ' || SQLERRM);
end;
/
Quote:
Originally posted by LKBrwn_DBA
Try this:
UPDATE ORDERS
SET ORDER_COST = (
SELECT SUM(COST) FROM ODETAILS
WHERE ODETAILS.ONO = ORDERS.ONO
AND ODETAILS.PNO = &prodno);
|