IT/ORACLE

ORACLE 오라클 함수 FUNCTION 정의 및 생성

!? 2024. 3. 9.

 

 

오라클 FUNCTION 정의 및 생성 방법

 

오라클 데이터베이스에서 함수란 특정 작업을 수행하고 결과 값을 반환하는 이름이 부여된 PL/SQL 블록입니다. 이 함수는 인수를 입력으로 받아 처리하고, 결과를 반환하는 역할을 합니다. 함수는 프로시저와 비슷하지만, 반드시 반환 값이 있어야 한다는 점에서 차이가 있습니다.


함수 생성 방법은 다음과 같습니다.

CREATE [OR REPLACE] FUNCTION function_name [(parameter [,parameter...])]
RETURN return_datatype
IS | AS
BEGIN
  -- 함수 로직
  RETURN value; 
END;
  • CREATE [OR REPLACE] FUNCTION function_name은 새로운 함수를 생성하거나, 동일한 이름의 기존 함수를 대체하려는 경우 사용합니다.
  • RETURN return_datatype은 함수가 반환할 데이터 유형을 지정합니다.
  • IS | AS는 함수 본문이 시작됨을 나타냅니다.
  • BEGIN...END 사이에는 실제 함수 로직이 위치하며, 이 부분은 사용자가 원하는 방식으로 구현할 수 있습니다.
  • RETURN value;는 함수의 반환 값입니다.

 

 

 

 

오라클 FUNCTION 생성예제 및 실행방법

 

간단한 예제를 통해 설명해 드리겠습니다. 아래의 함수는 두 숫자를 입력받아 더한 값을 반환하는 함수입니다.

CREATE OR REPLACE FUNCTION add_numbers (num1 IN NUMBER, num2 IN NUMBER) 
RETURN NUMBER 
IS 
  total NUMBER; 
BEGIN 
  total := num1 + num2; 
  RETURN total; 
END;

 

 

이 함수를 실행하는 방법은 다음과 같습니다.

DECLARE
  result NUMBER;
BEGIN
  result := add_numbers(10, 20);
  DBMS_OUTPUT.PUT_LINE('The result is: ' || result);
END;

이 PL/SQL 블록은 add_numbers 함수를 호출하고, 그 결과를 result 변수에 저장 후, DBMS_OUTPUT.PUT_LINE을 사용하여 결과를 출력합니다. 이 예제에서는 "The result is: 30"이라는 출력을 볼 수 있습니다.

 

 

 

 

몇 가지 예제

 

1. 문자열의 길이를 반환하는 FUNCTION

CREATE OR REPLACE FUNCTION get_string_length (str VARCHAR2) 
RETURN NUMBER 
IS
	length NUMBER;
BEGIN
	length := LENGTH(str);
	RETURN length;
END;

 

2. 날짜 간의 차이를 계산하는 FUNCTION

CREATE OR REPLACE FUNCTION calculate_date_difference (date1 DATE, date2 DATE) 
RETURN NUMBER 
IS
	difference NUMBER;
BEGIN
	difference := date2 - date1;
	RETURN difference;
END;

 

 

이렇게 오라클 FUNCTION에 대한 기본 개념과 생성 예제에 대해 알아보았습니다. FUNCTION은 데이터베이스에서 많은 유용한 작업을 수행하는 데 활용될 수 있으며, 적절하게 활용하여 개발 작업을 보다 효율적으로 수행할 수 있습니다.

 

 

댓글