저장 프로 시저와 함수의 차이

Anonim

저장 프로 시저와 함수

저장 프로 시저와 함수는 두 가지 유형의 프로그래밍 블록입니다. 둘 다 부르는 이름이 있어야합니다. 이러한 호출 이름은 프로 시저 함수 및 패키지 또는 SQL 쿼리와 같은 다른 프로그래밍 블록에서 호출하는 데 사용됩니다. 이 두 객체 유형은 매개 변수를 받아들이고 해당 객체 뒤에있는 작업을 수행합니다. 이것은 저장 프로 시저 (

)를 생성하는 구문입니다 (ORACLE의 경우). - 1 ->

프로 시저 procedurename (parameters)

begin

문으로 작성하거나 바꿉니다.

예외

예외 처리

끝;

다음은 ORACLE에서 함수를 작성하는 구문입니다 (

-> ->

function_name (매개 변수) 작성 또는 바꾸기

as

begin

statements;

return return_value / variable;

예외;

예외 처리;

끝;

저장 프로 시저

위에서 언급 한 바와 같이 저장 프로 시저는 프로그래밍 블록이라고 명명됩니다. 매개 변수는 프로 시저 뒤에있는 논리에 따라 사용자 입력 및 처리로 매개 변수를 받아들이고 결과를 제공합니다 (또는 특정 작업 수행). 이러한 매개 변수는 IN, OUT 및 INOUT 유형이 될 수 있습니다. 변수 선언, 변수 할당, 제어 문, 루프, SQL 쿼리 및 기타 함수 / 프로 시저 / 패키지 호출은 프로 시저 본문 내에있을 수 있습니다.

함수

함수는 또한 RETURN 문을 사용하여 값을 반환해야하는 프로그래밍 블록 이름이며, 값을 반환하기 전에 본문에서 일부 동작을 수행합니다 (지정된 논리에 따라). 함수는 실행할 매개 변수도 허용합니다. 함수는 쿼리 내에서 호출 할 수 있습니다. 함수가 SELECT 쿼리 내에서 호출되면 SELECT 쿼리의 결과 집합의 각 행에 적용됩니다. 오라클 기능에는 여러 범주가 있습니다.

단일 행 함수 (질의의 각 행마다 단일 결과를 반환)

  • 단일 행 함수의 하위 범주가 있습니다. (예: LAST_DAY, NEXT_DAY)

변환 함수 (예: TO_CHAR, TO_DATE)

  • 숫자 함수
  • 집계 함수 (예: CARDINALITY, SET)
  • 집계 함수 (행 그룹을 기반으로 한 행 반환 Ex: AVG, SUM, MAX)
  • 분석 함수
  • 모델 함수
  • 사용자 정의 함수
  • 함수와 저장 프로 시저의 차이점은 무엇입니까?
  • • 모든 함수는 RETURN 문을 사용하여 값을 반환해야합니다. 저장 프로시 저는 RETURN 문을 사용하여 값을 반환하지 않습니다. 프로 시저 내의 RETURN 문은 해당 제어를 호출 프로그램으로 리턴합니다. OUT 매개 변수는 저장 프로 시저의 값을 반환하는 데 사용할 수 있습니다.
  • • 함수는 쿼리 내에서 호출 될 수 있지만 저장 프로 시저는 쿼리 내에서 사용할 수 없습니다.

• 함수를 만들려면 RETURN 데이터 형식을 포함해야하지만 DDL에서는 저장 프로 시저 DDL이 아닙니다.