2011-08-11 2 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; 

/

사용이 사용 => 기호 내가 감사=> 심볼이 예 사용자에

... 친절하게 나를 도와 ... 그것을 사용하는 것을 목적으로 사용자에 대해 알아낼 수 없습니까
+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) ', d =>'bar ');' –

+0

@ammoQ - 분명히 대답에 포함시키고 있습니다. –