2011-08-11 8 views
4
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; 

/

のために使用されるOracle =>記号で、私はそれを使用してどのような目的のユーザーのために把握することができません... ... おかげユーザーは=>シンボル を使用している。この例では

+0

ようこそ:

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

...として呼び出すことができます。 '{}'ツールバーボタンでソースコードを書式設定することができます。私は今度あなたのためにそれをしました。 –

答えて

0

Oracle PL/SQLは、(定位置のパラメータではなく)名前付きパラメータを持つ呼び出された関数もサポートしています。これは、=>と同じです。

3

名前付きパラメータ表記法と呼ばれます。この手順を使用している場合:

changeprice (price_to_update, updated_price); 

か、位置表記法とそれを呼び出すことができます:

procedure changeprice (old_price number, new_price number); 

は、あなたは位置表記法とそれを呼び出すことができます

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

は詳細についてはdocumentationを参照してください。 。

8

named notation for subprogram parameters(対位置表記)です。この構文により、次のことが可能になります。

  1. スワップパラメータ。
  2. 省略可能なパラメータを省略します。

例:スタックオーバーフローへ

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

オプションパラメータをスキップすることもできます。たとえば、次のようなプロシージャ: 'foobar(a varchar2:= null、b varchar2:= null、c varchar2:= null、d varchar2:= null)'は次のように呼び出すことができます: 'foobar(b => 'foo '、d =>' bar '); ' –

+0

@ammoQ - 確かに、私は答えにそれを含めています。 –