패키지 생성 및 관리

PL/SQL 패키지를 생성하고 관리할 수 있습니다.

참조: 패키지 본문 변경 방법을 보여주는 "자습서: 하위 프로그램에서 변수 및 상수 선언"

패키지 구조 정보

패키지는 항상 사양을 포함하고 있으며, 대개 본문을 포함합니다. Spec은 패키지 자체를 정의하며 API(응용 프로그램 인터페이스)입니다. Body는 선언된 커서에 대한 query와 Package Spec에 선언된 서브 프로그램에 대한 코드를 정의합니다.

패키지 사양은 패키지 외부에서 참조할 수 있는 유형, 변수, 상수, 예외, 선언된 커서 및 하위프로그램을 선언하여 패키지를 정의합니다. 패키지 사양은 API(응용 프로그램 인터페이스)입니다. 즉, 클라이언트 프로그램이 서브 프로그램을 호출하는 데 필요한 모든 정보는 포함하지만 해당 구현 정보는 포함되지 않습니다.

패키지 본문은 패키지 사양에 선언된 선언된 커서에 대한 질의와 하위 프로그램에 대한 코드를 정의합니다. 따라서 선언된 커서와 하위 프로그램이 없는 패키지에서는 본문이 필요하지 않습니다. 또한 패키지 본문에서는 사양에서 선언하지 않은 로컬 하위 프로그램을 정의할 수 있습니다. 패키지 본문은 패키지의 다른 하위 프로그램에서만 호출될 수 있습니다. 패키지 본문 내용은 클라이언트 프로그램에서 볼 수 없도록 숨겨집니다. 패키지를 호출하는 응용 프로그램을 무효화하지 않고 패키지 본문을 변경할 수 있습니다.

참조:

자습서: 패키지 사양 생성

이 자습서에서는 패키지 생성 툴을 사용하여 이 문서의 여러 자습서 및 예제에 나타나는 EMP_EVAL이라는 패키지의 사양을 생성하는 방법을 보여 줍니다.

패키지 사양을 생성하려면 SQL Developer 툴 [패키지 생성] 또는 DDL 문 CREATE PACKAGE를 사용합니다.

Create Package Tool을 사용하여 Package Spec을 생성하는 단계:

  1. Connections(연결) 프레임에서 hr_conn을 확장합니다.

  2. 스키마 객체 유형 목록에서 패키지를 마우스 오른쪽 버튼으로 누릅니다.

  3. 선택 항목 목록에서 새 패키지를 누릅니다.

    Create Package window가 열립니다. [스키마] 필드의 값은 HR이고, [이름] 필드의 값은 기본값인 PACKAGE1이고, [소문자로 새 소스 추가] 체크 박스가 선택 해제되어 있습니다.

  4. [스키마]에 대해 기본값 HR을 사용합니다.

  5. Name에 PACKAGE1 값을 EMP_EVAL로 변경합니다.

  6. [확인]을 누릅니다.

    EMP_EVAL 창이 열리고 이 패키지를 생성한 CREATE PACKAGE 문이 표시됩니다.

     CREATE OR REPLACE PACKAGE emp_eval AS
    
     /* TODO enter package declarations (types, exceptions, methods etc) here */
    
     END emp_eval;
    

    창의 제목은 기울임꼴로 되어 있으며, 패키지가 데이터베이스에 저장되지 않았음을 의미합니다.

  7. (선택 사항) CREATE PACKAGE 문에서 설명을 선언으로 바꿉니다.

    지금 이 단계를 수행하지 않는 경우 "자습서: 패키지 사양 변경"에서처럼 나중에 수행할 수 있습니다.

  8. [파일] 메뉴에서 저장을 선택합니다.

    Oracle 데이터베이스에서 패키지를 컴파일하고 저장합니다. EMP_EVAL 창의 제목은 더 이상 기울임꼴 글꼴로 표시되지 않음

참조: Oracle Database PL/SQL Language Reference - 패키지 사양에 대한 CREATE PACKAGE 문 정보

자습서: 패키지 사양 변경

이 자습서에서는 편집 툴을 사용하여 이 문서의 여러 자습서와 예제에 나타나는 EMP_EVAL 패키지의 사양을 변경하는 방법을 보여줍니다. 특히, 자습서에서는 프로시저와 EVAL_DEPARTMENT라는 함수와 CALCULATE_SCORE에 대한 선언을 추가하는 방법을 보여줍니다.

패키지 사양을 변경하려면 SQL Developer 툴 편집을 사용하거나 OR REPLACE 절과 함께 DDL 문 CREATE PACKAGE를 사용합니다.

편집 툴을 사용하여 EMP_EVAL 패키지 사양을 변경하는 단계는 다음과 같습니다.

  1. Connections(연결) 프레임에서 hr_conn을 확장합니다.

  2. 스키마 객체 유형 목록에서 패키지를 확장합니다.

  3. 패키지 목록에서 EMP_EVAL을 마우스 오른쪽 버튼으로 누릅니다.

  4. 선택 항목 목록에서 편집을 누릅니다.

    EMP_EVAL 창이 열리고 이 패키지를 생성한 CREATE PACKAGE 문이 표시됩니다.

     CREATE OR REPLACE PACKAGE emp_eval AS
    
     /* TODO enter package declarations (types, exceptions, methods etc) here */
    
     END emp_eval;
    

    창의 제목은 기울임꼴이 아닙니다. 즉, 패키지가 데이터베이스에 저장되어 있습니다.

  5. EMP_EVAL 창에서 설명을 다음 코드로 바꿉니다.

     PROCEDURE eval_department ( dept_id IN NUMBER );
    
     FUNCTION calculate_score ( evaluation_id IN NUMBER
                             , performance_id IN NUMBER)
                             RETURN NUMBER;
    

    EMP_EVAL 창의 제목이 기울임꼴 글꼴로 변경되어 변경 사항이 데이터베이스에 저장되지 않았음을 나타냅니다.

  6. 컴파일 아이콘을 누릅니다.

    변경된 패키지 사양이 컴파일되고 데이터베이스에 저장됩니다. EMP_EVAL 창의 제목은 더 이상 기울임꼴 글꼴로 표시되지 않음

참조: OR REPLACE 절이 포함된 CREATE PACKAGE 문에 대한 자세한 내용은 Oracle Database PL/SQL Language Reference를 참조하십시오.

자습서: 패키지 본문 생성

이 자습서에서는 본문 작성 도구를 사용하여 이 문서의 여러 예제와 자습서에 나타나는 EMP_EVAL 패키지의 본문을 작성하는 방법을 보여줍니다.

패키지 본문을 생성하려면 SQL Developer 툴 본문 생성이나 DDL 문 CREATE PACKAGE BODY를 사용합니다.

본문 생성 툴을 사용하여 EMP_EVAL 패키지의 본문을 생성하는 단계는 다음과 같습니다.

  1. Connections(연결) 프레임에서 hr_conn을 확장합니다.

  2. 스키마 객체 유형 목록에서 패키지를 확장합니다.

  3. 패키지 목록에서 EMP_EVAL을 마우스 오른쪽 버튼으로 누릅니다.

  4. 선택 항목 목록에서 본문 생성을 누릅니다.

    EMP_EVAL Body 창이 나타나고 Package Body에 대해 자동으로 생성된 코드가 표시됩니다.

     CREATE OR REPLACE
     PACKAGE BODY EMP_EVAL AS
    
     PROCEDURE eval_department(dept_id IN NUMBER) AS
     BEGIN
    
         -- TODO implementation required for PROCEDURE EMP_EVAL.eval_department
         NULL;
     END eval_department;
    
     FUNCTION calculate_score ( evaluation_id IN NUMBER
                             , performance_id IN NUMBER)
                             RETURN NUMBER AS
     BEGIN
    
         -- TODO implementation required for FUNCTION EMP_EVAL.calculate_score
         RETURN NULL;
     END calculate_score;
    
     END EMP_EVAL;
    

    창의 제목이 기울임꼴로 표시됩니다. 즉, 코드가 데이터베이스에 저장되지 않았습니다.

  5. (선택 사항) CREATE PACKAGE BODY 문에서:

    • 설명을 실행 가능한 명령문으로 바꿉니다.

    • (선택 사항) 프로시저의 실행 부분에서 NULL을 삭제하거나 실행 가능한 명령문으로 바꿉니다.

    • (선택 사항) 함수의 실행 부분에서 NULL을 다른 표현식으로 바꿉니다.

    지금 이 단계를 완료하지 않는 경우 "자습서: 하위 프로그램의 변수 및 상수 선언"에서처럼 나중에 수행할 수 있습니다.

  6. 컴파일 아이콘을 누릅니다.

    변경된 패키지 본문이 컴파일되고 데이터베이스에 저장됩니다. EMP_EVAL 본문 창의 제목은 더 이상 기울임꼴이 아님.

참조: Oracle Database PL/SQL Language Reference - 패키지 본문에 대한 CREATE PACKAGE BODY 문에 대한 정보

패키지 삭제

패키지(사양 및 본문)를 삭제하려면 SQL Developer Connections 프레임 및 삭제 툴이나 DDL 문 DROP PACKAGE를 사용합니다.

주의: EMP_EVAL 패키지는 삭제하지 마십시오. 이 패키지는 이후 자습서에 필요합니다. 패키지 삭제를 연습하려면 간단한 패키지를 생성한 다음 삭제합니다.

삭제 툴을 사용하여 패키지를 삭제하는 단계:

  1. Connections(연결) 프레임에서 hr_conn을 확장합니다.

  2. 스키마 객체 유형 목록에서 패키지를 확장합니다.

    패키지 목록이 나타납니다.

  3. 패키지 목록에서 삭제할 패키지 이름을 마우스 오른쪽 버튼으로 누릅니다.

  4. 선택 항목 목록에서 패키지 삭제를 누릅니다.

  5. [삭제] 창에서 적용을 누릅니다.

  6. [확인] 창에서 확인을 누릅니다.

참조: DROP PACKAGE 문에 대한 자세한 내용은 Oracle Database PL/SQL Language Reference를 참조하십시오.