Day44 - PL/SQL_프로시저, 매개변수 IN

2021. 4. 16. 16:21Oracle 공부

이번에는 PL/SQL_프로시저 에 대해 알아 봅시다

 

프로시저

프로시저는 JAVA 에서 메서드(함수) 라고 생각을 하면 될 것 같습니다.

 

즉. 원하는 기능을 만들어 두고, 원할 때 가져다 쓰는 겁니다.

 

만들기

CREATE OR REPLACE PROCEDURE 프로시저명 ( 매개변수 )

IS

     변수의 선언 및 초기화

BEGIN

      실행문

END;

 

※ 같은 이름으로 만들경우. 프로시저는 수정 됩니다. ( REPLACE )

 

 

사용

사용할 때는, EXECUTE 또는 EXEC 를 쓰면 됩니다

 

 

매개변수의 사용

매개변수를 사용할 때는, 괄호안에 사용할 매개변수를 만들어 주면 됩니다.

그리고, 이렇게 만든 매개변수를 아래의 구문에서 사용합니다.

 

※ 주의 : 매개변수의 타입과 전달값의 타입이 동일해야 함.

 

※ 매개변수 IN 타입

위와 같이 작성을 하게되면, JOBS 테이블에 매개변수로 받은 값들이 INSERT(추가) 됩니다.

매개변수는 이렇게, 프로시저를 호출하는 구문에서 넣어주시면 됩니다.

 

그런데, 똑같은 구문을 2번 쓰면 오류가 납니다. 그 이유는 JOB_ID 가 PK(기본키) 이기 때문인데요

그래서, IF문까지 같이 사용을 해줍시다.

 

먼저, 매개변수에 저장된 PK 가 이미 있는지 COUNT를 통해 확인을 해서 선언한 변수 V_COUNT 에 넣고, IF문을 사용해서 있을 경우와 없을 경우 로 INSERT , UPDATE 를 사용합니다.

 

프로시저의 매개변수에 기본값 설정하기

프로시저에 매개변수를 설정 해 두었다면, 매개변수의 개수를 맞추어야만 실행이 됩니다.

그런데, 기본값을 설정하면 개수를 맞추지 않아도 실행시킬 수 있습니다.

 

매개변수를 설정할때, 값을 대입해주면 됩니다.

※ 주의 : 기본값은 건너뛸 수 없습니다. EX) 아래의 코드에서 P_JOB_ID 를 입력하고 P_MAX_SAL 을 입력할 수 없음

※ 매개변수는 앞부터 차례대로 대입되기 때문.

 

이렇게 프로시저에 대해서 간단하게 알아 보았습니다.

 

고생하셨습니다.