Packages erstellen und verwalten

Sie können PL/SQL-Packages erstellen und verwalten.

Siehe auch: "Tutorial: Variablen und Konstanten in einem Unterprogramm deklarieren", das zeigt, wie ein Packagebody geändert wird

Informationen zur Package-Struktur

Ein Package verfügt immer über eine Spezifikation und in der Regel auch über einen Body. Die Spezifikation definiert das Package selbst und ist eine Anwendungsprogrammschnittstelle (Application Program Interface, API). Der Body definiert die Abfragen für die deklarierten Cursor und den Code für die Unterprogramme, die in der Packagespezifikation deklariert werden.

Die Package-Spezifikation definiert das Package. Sie deklariert die Typen, Variablen, Konstanten, Ausnahmen, deklarierten Cursor und Unterprogramme, die von außerhalb des Packages referenziert werden können. Eine Package-Spezifikation ist eine API (Application Program Interface): Sie enthält alle Informationen, die Clientprogramme benötigen, um ihre Unterprogramme aufzurufen, doch keine Informationen über deren Implementierung.

Der Package Body definiert die Abfragen für die deklarierten Cursor und den Code für die Unterprogramme, die in der Package-Spezifikation deklariert sind. (Daher benötigt ein Paket, das weder über expliziten Cursor oder Unterprogramme verfügt noch über Unterprogramme einen Body). Der Package-Body kann auch lokale Unterprogramme definieren, die in der Spezifikation nicht deklariert sind und nur von anderen Unterprogrammen im Package aufgerufen werden können. Der Inhalt des Package-Bodys ist für Clientprogramme verborgen. Sie können den Package-Body ändern, ohne die Anwendungen, die das Package aufrufen, zu invalidieren.

Siehe:

Tutorial: Package-Spezifikation erstellen

In diesem Tutorial wird beschrieben, wie Sie mit dem Tool "Package erstellen" eine Spezifikation für ein Package namens EMP_EVAL erstellen. Diese Spezifikation wird in vielen Tutorials und Beispielen in diesem Dokument angezeigt.

To create a package specification, use either the SQL Developer tool Create Package or the DDL statement CREATE PACKAGE.

Schritte zum Erstellen einer Packagespezifikation mit dem Tool "Package erstellen":

  1. Blenden Sie im Schritt "Verbindungen" hr_conn ein.

  2. Klicken Sie in der Liste der Schemaobjekttypen mit der rechten Maustaste auf Packages.

  3. Klicken Sie in der Auswahlliste auf Neues Paket.

    Das Fenster "Paket erstellen" wird geöffnet. Das Feld "Schema" hat den Wert HR, das Feld "Name" hat den Standardwert PACKAGE1, und das Kontrollkästchen "Neue Quelle in Kleinbuchstaben hinzufügen" ist deaktiviert.

  4. Akzeptieren Sie für "Schema" den Standardwert HR.

  5. Ändern Sie für Name den Wert PACKAGE1 in EMP_EVAL.

  6. Klicken Sie auf "OK".

    Der Fensterbereich EMP_EVAL wird geöffnet und zeigt die Anweisung CREATE PACKAGE, mit der das PACKAGE erstellt wurde:

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

    Der Titel des Fensterbereichs ist kursiv formatiert. Dies weist an, dass das Package nicht auf der Datenbank gespeichert ist.

  7. (Optional) Ersetzen Sie in der Anweisung CREATE PACKAGE den Kommentar durch Deklarationen.

    Wenn Sie diesen Schritt jetzt nicht ausführen, können Sie dies später nachvollziehen. Informationen dazu finden Sie unter Tutorial: Package-Spezifikationen ändern.

  8. Wählen Sie im Menü "Datei" die Option Speichern.

    Oracle-Datenbank kompiliert das Package und speichert es. Der Titel des Fensterbereichs EMP_EVAL wird nicht mehr kursiv dargestellt.

Siehe auch: Oracle Database PL/SQL Language Reference für Informationen zur Anweisung CREATE PACKAGE (für die Packagespezifikation)

Tutorial: Package-Spezifikation ändern

In diesem Tutorial wird gezeigt, wie Sie mit dem Tool "Bearbeiten" die Spezifikation für das Package EMP_EVAL ändern, das in vielen Tutorials und Beispielen in diesem Dokument angezeigt wird. Im Einzelnen zeigt das Tutorial, wie Sie Deklarationen für eine Prozedur (EVAL_DEPARTMENT) und eine Funktion (CALCULATE_SCORE) hinzufügen.

Um eine PACKAGE-Spezifikation zu ändern, nutzen Sie entweder das Tool "Edit" von SQL Developer oder die DDL-Anweisung CREATE PACKAGE mit der Klausel OR REPLACE.

Schritte zum Ändern der Package-Spezifikation EMP_EVAL mit dem Tool "Bearbeiten":

  1. Blenden Sie im Schritt "Verbindungen" hr_conn ein.

  2. Blenden Sie in der Liste der Schemaobjekttypen die Option Packages ein.

  3. Klicken Sie in der Liste der Packages mit der rechten Maustaste auf EMP_EVAL.

  4. Klicken Sie in der Auswahlliste auf Bearbeiten.

    Der Fensterbereich EMP_EVAL wird geöffnet und zeigt die Anweisung CREATE PACKAGE, mit der das PACKAGE erstellt wurde:

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

    Der Titel des Fensterbereichs ist nicht kursiv formatiert, was darauf hinweist, dass das Package in der Datenbank gespeichert ist.

  5. Ersetzen Sie im Bereich EMP_EVAL den Kommentar mit diesem Code:

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

    Der Titel des Bereichs EMP_EVAL ändert sich in die kursive Schriftart. Dies bedeutet, dass die Änderungen nicht in der Datenbank gespeichert wurden.

  6. Klicken Sie auf das Symbol Kompilieren.

    Die geänderte Package-Spezifikation wird kompiliert und in die Datenbank gespeichert. Der Titel des Fensterbereichs EMP_EVAL wird nicht mehr kursiv dargestellt.

Siehe auch: Oracle Database PL/SQL Language Reference für Informationen zur Anweisung CREATE PACKAGE mit der Klausel OR REPLACE

Tutorial: Package-Body erstellen

In diesem Tutorial wird gezeigt, wie Sie mit dem Tool "Body erstellen" einen Body für das Package EMP_EVAL erstellen. Dieser Body wird in vielen Beispielen und Tutorials in diesem Dokument angezeigt.

Wenn Sie einen PACKAGE BODY erstellen wollen, verwenden sie entweder das SQL Developer-Tool "BODY erstellen" oder die DDL-Anweisung CREATE PACKAGE BODY.

Schritte zum Erstellen eines Body für das Package EMP_EVAL mit dem Tool "Body erstellen":

  1. Blenden Sie im Schritt "Verbindungen" hr_conn ein.

  2. Blenden Sie in der Liste der Schemaobjekttypen die Option Packages ein.

  3. Klicken Sie in der Liste der Packages mit der rechten Maustaste auf EMP_EVAL.

  4. Klicken Sie in der Auswahlliste auf Text erstellen.

    Der Bereich "EMP_EVAL Body" wird mit dem automatisch generierten Code für den Package Body angezeigt:

     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;
    

    Der Titel des Bereichs wird in Kursivschrift angezeigt. Das bedeutet, dass der Code noch nicht in der Datenbank gespeichert ist.

  5. (Optional) In der CREATE PACKAGE BODY-Anweisung:

    • Ersetzen Sie die Kommentare durch ausführbare Anweisungen.

    • (Optional) Im ausführbaren Teil der Prozedur löschen Sie NULL oder ersetzen an dieser Stelle eine ausführbare Anweisung.

    • (Optional) Im ausführbaren Teil der Funktion ersetzen Sie NULL durch einen anderen Ausdruck.

    Wenn Sie diesen Schritt jetzt nicht ausführen, können Sie dies später nachholen. Informationen hierzu finden Sie in Tutorial: Variablen und Konstanten in Unterprogrammen deklarieren.

  6. Klicken Sie auf das Symbol Kompilieren.

    Der geänderte Package Body wird kompiliert und in der Datenbank gespeichert. Der Titel des Bereichs "EMP_EVAL Body" wird nicht mehr in Kursivschrift dargestellt.

Siehe auch: Oracle Database PL/SQL Language Reference für Informationen zur Anweisung CREATE PACKAGE BODY (für den Packagebody)

Package ablegen

Um ein PACKAGE (Spezifikation und Body) zu löschen, verwenden Sie entweder den SQL Developer Connections-Frame und das DROP-Tool oder die DDL-Anweisung DROP PACKAGE.

Achtung: Löschen Sie das Package EMP_EVAL nicht. Sie benötigen es für spätere Tutorials. Wenn Sie das Löschen von Packages üben möchten, erstellen Sie einfache Packages und löschen Sie diese.

Schritte zum Löschen eines Packages mithilfe der Löschfunktion:

  1. Blenden Sie im Schritt "Verbindungen" hr_conn ein.

  2. Blenden Sie in der Liste der Schemaobjekttypen die Option Packages ein.

    Eine Liste der Packages wird angezeigt.

  3. Klicken Sie in der Liste der Packages mit der rechten Maustaste auf den Namen des Packages, das gelöscht werden soll.

  4. Klicken Sie in der Auswahlliste auf Package löschen.

  5. Klicken Sie im Drop-Fenster auf Anwenden.

  6. Klicken Sie im Bestätigungs-Fenster auf OK.

Siehe auch: Oracle Database PL/SQL Language Reference für Informationen zur DROP PACKAGE-Anweisung