RT,顺便解释下红字的地方
set serveroutput on
DECLARE
price_to_hike NUMBER(6,2) := 20;
hiked_price NUMBER(6,2) := 0;
BEGIN
dbms_output.put_line('Price before hike ' || price_to_hike);
dbms_output.put_line('hiked_price before hike ' || hiked_price);
hike_prices (old_price => price_to_hike,
new_price => hiked_price);
dbms_output.put_line('price_to_hike after hike ' || price_to_hike);
dbms_output.put_line('hiked_price after hike ' || hiked_price);
END;
/
=========================================================================
Price before hike 20
hiked_price before hike 0
price_to_hike after hike 20
hiked_price after hike 21PL/SQL procedure successfully completed.

解决方案 »

  1.   

    hike_prices 有多个参数,但都有缺省值,可以不写
    如果你不知道那些参数的具体顺序可以采用这种方法hike_prices (old_price => price_to_hike, 
    new_price => hiked_price); 
    可能还有其他参数,而这两个参数也不是前两个参数,
    按正常的写法还要设置其他的参数比较麻烦

    参数old_price = price_to_hike, 
    参数new_price = hiked_price
      

  2.   

    说的还不是太懂,还有那个hiked_price after hike结果为什么是21? 
      

  3.   

    学习,能不能把hike_prices 的方法贴出来看看
      

  4.   

    举个例子吧
    假设有个过程
    hs(a in number:=0,b in number:=0,c in number:=0,d in number:=0)
    而我调用的时候想c=3,d=5,a和b采用缺省值
    hs(c=>3,d=>5)等价于hs(0,0,3,5)