300x250
오라클 PL/SQL에서 Function의 기본 구조는 다음과 같습니다. Function은 값을 반환하는 PL/SQL 블록으로, 특정 작업을 수행하고 결과를 반환하는 데 사용됩니다.
기본 구조
CREATE OR REPLACE FUNCTION 함수이름 (
매개변수명1 데이터타입 [IN | OUT | IN OUT],
매개변수명2 데이터타입 [IN | OUT | IN OUT]
) RETURN 반환타입
IS
-- 선언부 (변수, 상수, 커서 등)
변수명 데이터타입;
BEGIN
-- 실행부 (로직 처리)
-- 반환값 지정
RETURN 반환값;
EXCEPTION
-- 예외 처리부
WHEN OTHERS THEN
-- 예외 처리 로직
END;
/
간단한 예제
두 수를 더하는 함수
CREATE OR REPLACE FUNCTION add_numbers(
num1 IN NUMBER,
num2 IN NUMBER
) RETURN NUMBER
IS
result NUMBER; -- 결과를 저장할 변수
BEGIN
result := num1 + num2; -- 두 수를 더함
RETURN result; -- 결과 반환
END;
/
호출 예제
DECLARE
sum_result NUMBER;
BEGIN
-- 함수 호출
sum_result := add_numbers(10, 20);
DBMS_OUTPUT.PUT_LINE('Sum: ' || sum_result);
END;
/
예외 처리가 포함된 예제
숫자가 음수면 오류를 반환하는 함수
CREATE OR REPLACE FUNCTION check_positive(
num IN NUMBER
) RETURN VARCHAR2
IS
BEGIN
IF num < 0 THEN
RAISE_APPLICATION_ERROR(-20001, 'Number must be positive');
END IF;
RETURN 'Positive Number';
EXCEPTION
WHEN OTHERS THEN
RETURN 'Error: ' || SQLERRM;
END;
/
호출 예제
DECLARE
result_msg VARCHAR2(100);
BEGIN
-- 양수 검사
result_msg := check_positive(-5);
DBMS_OUTPUT.PUT_LINE(result_msg);
END;
/
주요 포인트
- 함수는 항상 값을 반환해야 합니다. RETURN 문이 필수입니다
- 필요하면 DBMS_OUTPUT.PUT_LINE을 사용하여 디버깅 정보를 출력할 수 있습니다.
- 함수의 의존 객체(테이블, 뷰 등)가 변경되면 함수가 유효하지 않을 수 있으니, 재컴파일해야 합니다.
ALTER FUNCTION 함수이름 COMPILE;
관련 블로그
PL/SQL Function / Procedure 실행 오류 확인 방법
오라클에서 PL/SQL FUNCTION 또는 PROCEDURE가 실행 중 오류를 발생시키는 경우, 해당 실행 오류를 확인하는 방법은 다음과 같습니다:1. EXCEPTION 블록 사용 : 오라클 PL/SQL 블록에서 발생하는 실행 오류를
make2t.tistory.com
300x250
'IT > Oracle' 카테고리의 다른 글
오라클 Job 스케줄링 및 모니터링 (1) | 2025.02.23 |
---|---|
오라클 힌트 조회 (2) | 2025.02.23 |
오라클 파티션 인덱스 상태 조회 쿼리 (0) | 2025.02.23 |
오라클 통계정보 갱신 (2) | 2025.02.23 |
오라클 특정 파티션 내 데이터 조회 (0) | 2025.02.23 |