[오라클 PL/SQL] PL/SQL 매개변수 디폴트 값 설정 하는 방법


안녕하세요.

 

오늘은 오라클 PL/SQL에서 프로시저 실행 시 매개변수에 값을 입력은 안해도 오류가 나지 않게 매개변수에 디폴트 값을 설정하는 방법에 대해서 알려드리려고 합니다.

 

오라클 PL/SQL에서 프로시저를 실행할 때에는 반드시 매개변수의 개수에 맞춰서 프로시저를 실행해야 하고, 만약 개수가 다르게 실행을 하게 되면 실행하는 과정에서 에러가 발생하게 되는데요.

 

실제 프로젝트를 하다 보면 많은 프로시저들을 보시게 되고, 이 프로시저들의 매개변수를 일일이 확인하기가 번거롭습니다.

 

이럴 때, 애초에 프로시저를 생성할 때에 매개변수 디폴트 값을 설정해서 지정을 하면 사전에 매개변수 개수가 다르더라도 에러가 나는 것을 방지 할 수 있어서 유용한 문법이라 생각이 듭니다.


 

그럼 매개변수 디폴트 값을 어떻게 설정을 하는지 바로 예제 코드를 통해서 알아 보도록 하겠습니다.

 

프로시저 매개변수 디폴트 값 생성


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

CREATE OR REPLACE PROCEDURE my_new_student_proc (

    p_school_no IN WIN.STUDENT.SCHOOL_NO%TYPE,

    p_class IN WIN.STUDENT.CLASS%TYPE,

    p_name IN WIN.STUDENT.NAME%TYPE,

    p_age IN WIN.STUDENT.AGE%TYPE := 20--디폴트값 생성 

    p_grade IN WIN.STUDENT.GRADE%TYPE := 1

    p_score IN WIN.STUDENT.SCORE%TYPE := 50

)

 

IS

 

BEGIN

    INSERT INTO WIN.STUDENT (SCHOOL_NO, CLASS, NAME, AGE, GRADE, SCORE)

    VALUES (p_school_no, p_class, p_name, p_age, p_grade, p_score);

 

END;

Colored by Color Scripter

cs

 

지금 현재 위에서 my_new_student_proc 프로시저를 생성 하였고,

 

매개변수로 p_school_no, p_class, p_name, p_age, p_grade, p_score 이렇게 총 6가지의 정보를 입력 받는데, 여기서 현재 p_age는 디폴트 값으로 20, p_grade는 디폴트 값으로 1, p_score는 디폴트 값으로 50 이렇게 설정 해주고 프로시저를 생성 하였습니다.

 

이제 프로시저를 실행해 보도록 하겠습니다.

 

디폴트 값 있는 프로시저 실행


1

EXECUTE my_new_student_proc('1''2''이재용');

cs

 

실행 결과



 

이처럼, 프로시저를 실행할 때에는 p_school_no, p_class, p_name만 지정해주고 나머지는 입력하지 않았지만 기본적으로 디폴트 값으로 지정해준 값이 같이 저장된 모습을 확인 하실 수 있습니다.


이로써 프로시저에서 매개변수 디폴트 값 지정하는 방법에 대해서 알아 보았습니다.

 

감사합니다.


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY