在Oracle =>用于的符号

时间:2011-08-11 11:02:19

标签: oracle oracle10g oracle11g

DECLARE
price_to_update NUMBER(6,2) := 20;

updated_price NUMBER(6,2) := 0;

BEGIN


dbms_output.put_line('price before ' || price_to_update);

dbms_output.put_line('updated_price before ' || updated_price);

changePrice (old_price => price_to_update, new_price => updated_price);

dbms_output.put_line('price_to_update after update ' || price_to_update);

dbms_output.put_line('updated_price after update ' || updated_price);

END;

/

在此示例中,用户正在使用=>符号 我无法弄清楚用户使用它的目的是什么...... KIndly帮帮我... 感谢

3 个答案:

答案 0 :(得分:8)

这是named notation for subprogram parameters(与位置表示法相对)。此语法允许:

  1. 交换参数。
  2. 省略可选参数。
  3. 示例:

    PROCEDURE FOO(A VARCHAR2:=NULL, B VARCHAR2:=NULL, C VARCHAR2:=NULL)
    

    ...可以被称为:

    FOO(C=>'FOO', A=>'BAR');
    

答案 1 :(得分:3)

它被称为“命名参数表示法”。如果你有这个程序:

procedure changeprice (old_price number, new_price number);

然后你可以用位置符号来调用它:

changeprice (price_to_update, updated_price);

或者您可以使用位置符号来调用它:

changeprice (old_price => price_to_update, new_price => updated_price);

有关详细信息,请参阅documentation

答案 2 :(得分:0)

Oracle PL / SQL还支持带有命名参数的被调用函数(与位置参数相对)。这就是=>确实