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帮帮我... 感谢
答案 0 :(得分:8)
这是named notation for subprogram parameters(与位置表示法相对)。此语法允许:
示例:
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还支持带有命名参数的被调用函数(与位置参数相对)。这就是=>确实