PLSQL

[PL/SQL] 익명 블록을 이용한Package의 Procedure 실행 방법

LKJaden 2024. 12. 18. 19:19

외부에서 접근할 수 있는 패키지 내의 프로시저는, Spec에 선언된 프로시저뿐이다.

Body에 선언된 프로시저라 하여도, Spec에 선언된 것이 아니라면 직접 호출할 수 없다. (주로 Spec에 선언된 프로시저의 내부에서 Body의 프로시저를 호출하는 형태인 듯하다.)

 

SQL워크시트에서 패키지 내부에 있는 프로시저를 호출하기 위해 익명 블록(BEGIN,END)을 작성한다.

BEGIN
	패키지명.프로시저명(값1, 값2);
END;

 

프로시저의 IN 매개변수는 그냥 값을 넣어주면 되는데, OUT 매개변수는 값으로 전달하면 “00식은 피할당자로 사용될 수 없습니다” 라는 오류를 띄운다. 이럴 때엔 DECLARE문에 OUT 매개변수와 동일한 타입의 변수를 선언하고, 빈 변수를 전달하여 실행시키면 된다.

 

만약, 값2가 들어가는 매개변수가 OUT 매개변수라면 아래와 같이 작성해야 한다는 뜻이다. 

 

DECLARE
	V_변수명 타입;
BEGIN
	패키지명.프로시저명(값, V_변수명);
END;

 

 

 

실제 사용한 코드이다.

워크시트에 작성하고 실행하면, "PL/SQL 프로시저가 성공적으로 완료되었습니다."라는 문구를 확인할 수 있다.