Plsql WHILE循环中的PL/SQL增量

Plsql WHILE循环中的PL/SQL增量,plsql,while-loop,increment,Plsql,While Loop,Increment,我试图计算出在给定金额下可以购买的物品总数。为此,我尝试创建一个带有WHILE循环的块,以增加项目的成本,直到达到美元值($100),但无法正确计算循环 DECLARE lv_totavail_num NUMBER(8,2) := 100; lv_itemprice_num NUMBER(8,2); lv_totamt_num NUMBER(8,2); lv_loopnum_num NUMBER(8,2) := 0; BEGIN DBMS_OUTPUT.PUT_LINE('Total Start

我试图计算出在给定金额下可以购买的物品总数。为此,我尝试创建一个带有WHILE循环的块,以增加项目的成本,直到达到美元值($100),但无法正确计算循环

DECLARE
lv_totavail_num NUMBER(8,2) := 100;
lv_itemprice_num NUMBER(8,2);
lv_totamt_num NUMBER(8,2);
lv_loopnum_num NUMBER(8,2) := 0;
BEGIN
DBMS_OUTPUT.PUT_LINE('Total Starting Amount: ' || lv_totavail_num);
SELECT price
INTO lv_itemprice_num
FROM BB_PRODUCT
WHERE IDPRODUCT = 4;
DBMS_OUTPUT.PUT_LINE('Price: ' || lv_itemprice_num);
WHILE lv_totavail_num >= lv_itemprice_num LOOP
lv_totavail_num := lv_itemprice_num * lv_loopnum_num;
lv_loopnum_num := lv_loopnum_num + 1;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Number of Items Purchased that can be purchased: ' || lv_loopnum_num);
DBMS_OUTPUT.PUT_LINE('Total Amount: '|| lv_loopnum_num * lv_itemprice_num);
END;

您的while包含不正确的内容。使用
lv\u totam\u num
计算价格。 还有其他一些小事情。检查以下各项:

DECLARE
lv_totavail_num NUMBER(8,2) := 100;
lv_itemprice_num NUMBER(8,2) := 0;
lv_totamt_num NUMBER(8,2) := 0;
lv_loopnum_num NUMBER(8,2) := 0;
BEGIN
DBMS_OUTPUT.PUT_LINE('Total Starting Amount: ' || lv_totavail_num);

SELECT price
INTO lv_itemprice_num
FROM BB_PRODUCT
WHERE IDPRODUCT = 4;
DBMS_OUTPUT.PUT_LINE('Price: ' || lv_itemprice_num);
WHILE lv_totavail_num >= lv_totamt_num LOOP
lv_loopnum_num := lv_loopnum_num + 1;
lv_totamt_num := lv_itemprice_num * lv_loopnum_num;

END LOOP;
lv_loopnum_num := lv_loopnum_num -1;
DBMS_OUTPUT.PUT_LINE('Number of Items Purchased that can be purchased: ' ||lv_loopnum_num  );
DBMS_OUTPUT.PUT_LINE('Total Amount: '|| lv_loopnum_num * lv_itemprice_num);
END;

谢谢你。<我感谢你的帮助。