외부에서 접근할 수 있는 패키지 내의 프로시저는, 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 프로시저가 성공적으로 완료되었습니다."라는 문구를 확인할 수 있다.
'PLSQL' 카테고리의 다른 글
[PL/SQL] DBMS_OUTPUT.PUT_LINE 출력하기 (0) | 2024.12.23 |
---|---|
[PL/SQL] 프로시저/트리거/함수 등에서 특정 내용 포함 위치 검색 쿼리 (0) | 2024.12.17 |