Oracle 带有while的PL/SQL循环
问题是,循环没有按需要计数: 例如,我需要计算:一张100%的DVD价格等于64美元$ 95%时为60.8%$ 在90美元时,它必须采用原价(64美元)并从该金额中获得90%,但相反,他是从最后一个(60.8美元)价格开始计算的,他是90%Oracle 带有while的PL/SQL循环,oracle,plsql,while-loop,Oracle,Plsql,While Loop,问题是,循环没有按需要计数: 例如,我需要计算:一张100%的DVD价格等于64美元$ 95%时为60.8%$ 在90美元时,它必须采用原价(64美元)并从该金额中获得90%,但相反,他是从最后一个(60.8美元)价格开始计算的,他是90% create or replace procedure PR_PRICE is V_PRICE DVD.AMOUNT_PRICE_DVD%type; p_counter number(3):=100; begin select AMOUNT_PRIC
create or replace procedure PR_PRICE
is V_PRICE DVD.AMOUNT_PRICE_DVD%type;
p_counter number(3):=100;
begin
select AMOUNT_PRICE_DVD into V_PRICE
from DVD
where TITLE_DVD like '%pop';
-- p_counter :=100;
while p_counter >= 80 loop
V_PRICE := p_counter*V_PRICE/ 100;
dbms_output.put_line('The price of DVD at ' || p_counter ||'% is: ' || V_PRICE ||'$');
p_counter := p_counter-5;
end loop;
end PR_PRICE;
/
不要覆盖
v_price
,而是为折扣价格创建一个不同的变量:
create or replace procedure PR_PRICE
is
V_PRICE DVD.AMOUNT_PRICE_DVD%type;
V_DISCOUNT_PRICE DVD.AMOUNT_PRICE_DVD%type; -- Declared here
p_counter number(3):=100;
begin
select AMOUNT_PRICE_DVD into V_PRICE
from DVD
where TITLE_DVD like '%pop';
p_counter :=100;
while p_counter >= 80 loop
V_DISCOUNT_PRICE := p_counter*V_PRICE/ 100; -- Calculated here
dbms_output.put_line('The price of DVD at ' || p_counter ||'% is: ' || V_DISCOUNT_PRICE ||'$');
p_counter := p_counter-5;
end loop;
end PR_PRICE;
@如果答案是你一直在寻找的,你什么都不知道。。。别忘了这样做。否则,这个问题仍然会突然出现,因为没有更好的词,所以这个问题“悬而未决”。这也有助于抽出时间回答您的问题的个人。