카테고리 없음

[신탁] Oracle plsql varchar2 변수에 크기가 필요하지만 매개 변수에는 왜 필요하지 않습니까?

행복을전해요 2021. 2. 6. 12:48

"Oracle Database는 프로 시저가 호출 된 환경에서 인수의 길이, 정밀도 및 스케일을 파생합니다."

관련 질문을 확인하십시오 .

참조 : Oracle® Database SQL Reference 10g Release 2 (10.2) 의미론 / 인수 / 데이터 유형 아래를 살펴보십시오.

-------------------

차이점은 서브 프로그램 제목에는 서브 프로그램이 호출 될 때 실제 매개 변수 로 대체되는 형식 매개 변수가 있다는 것입니다 .

create or replace function f(
  p_x in varchar2 /* a formal parameter */
   ,p_y in varchar2 /* a formal parameter */
   ) return varchar2 /* a formal parameter */
   is
   begin
     return p_x || p_y;
     end;
     
     declare
       v_z varchar2(10);
         v_x constant varchar2(1) := 'X';
         begin
           v_z := f(v_x, 'Y'); /* actual parameters */
           end;
           

형식 매개 변수는 제한되지 않으며 (제한된 하위 유형을 사용할 수 있음) 변수를 선언 할 때 관련이없는 매개 변수 모드 및 가능한 기본값 에 대한 정보도 포함 합니다.

형식 및 실제 매개 변수의 데이터 유형은 동일하지 않아도되지만 호환 가능 합니다.

다른 많은 세부 정보도 있지만 PL / SQL 언어 참조PL / SQL 하위 프로그램 장에서 읽을 수 있습니다 . 특별 하위 프로그램 매개 변수를 참조하십시오 .

왜 형식 매개 변수가 제한되지 않아야하는지 모르겠지만 서브 프로그램 헤더에서 (불필요한) 세부 사항을 제거하여 좀 더 추상적으로 만드는 것에 만족합니다.



출처
https://stackoverflow.com/questions/22050189