我不知道如何执行或测试此过程。我是那个领域的新手。提前致谢。
表价格具有id,price,datePrice和productId。餐桌产品具有ID,当前价格和名称
create or replace PROCEDURE "currentprice"
(idproduct IN NUMBER) AS
currentprice products.current_price%type;
BEGIN
SELECT price INTO currentprice
FROM prices
WHERE productId=idprice AND datePrice=(select max(datePrice) FROM prices WHERE
productId=idprice AND datePrice<=SYSDATE);
UPDATE products
SET currentprice = currentprice
WHERE id=idproduct;
END;
答案 0 :(得分:1)
Begin
"currentprice"(1);
End;
/
Commit
;
在SQL Developer中使用F5执行,然后查询表数据以查看新价格。
我建议您将过程重命名为currentprice-不加引号...可以为您省去很多麻烦。
您还可以浏览到SQL Developer中的过程并打开它,然后使用“执行”按钮。
答案 1 :(得分:0)
我重命名了过程-没有引号。再次找不到数据。
我有触发该程序的触发器
create or replace TRIGGER currentprice2
AFTER INSERT OR UPDATE OR DELETE ON Prices
DECLARE
s NUMBER:=priceproduct.id;
BEGIN
currentprice(s);
END;
我也有包裹。也许我在打包参数ID方面弄错了。
create or replace PACKAGE priceproduct IS
id products.id%TYPE;
END priceproduct;