pl sql package oracle pl sql package tutorial with examples
Erfahren Sie mehr über das PL SQL-Paket, seine Vorteile, Spezifikationen und Struktur:
In diesem Artikel werden wir fortfahren PL / SQL-Serie . In dem PL SQL-Datensätze Im Tutorial haben wir anhand von Programmierbeispielen etwas über Datensätze und Datensatztypen gelernt.
Hier werden wir Pakete in PL / SQL und einige wichtige Funktionen von Paketen untersuchen. Außerdem werden wir einige der grundlegenden Operationen auf ihnen diskutieren.
Wir werden auch dbms_ouput-Pakete in PL / SQL und seinen Unterprogrammen diskutieren.
Beginnen wir mit den Erkenntnissen !!
Was du lernen wirst:
PL SQL-Paket
Ein Paket ist ein Objekt in Form eines Schemas, das logisch verbundene Elemente, Typen und Unterprogramme in PL / SQL trennt. Ein Paket besteht aus zwei Teilen: Paketspezifikation und Paketkörper oder Definition .
Die Paketspezifikation ist wie eine Schnittstelle zur Anwendung und wird zum Deklarieren von Variablen, Konstanten, Typen, Ausnahmen, Cursorn und Unterprogrammen verwendet. Der Hauptteil eines Pakets implementiert die in der Paketspezifikation deklarierten Unterprogramme und Cursor.
Wir können einen Paketkörper aktualisieren, debuggen oder ändern, ohne die Paketspezifikation zu berühren (auch als Schnittstelle zum Paket bezeichnet).
Vorteile des PL / SQL-Pakets
Die Vorteile des Pakets sind unten aufgeführt:
- Es gibt unserem Code Modularität.
- Es hilft, die Anwendung einfach zu gestalten.
- Mit dem PLSQL-Paket können Informationen mithilfe öffentlicher und privater Elemente, Datentypen und Unterprogramme ausgeblendet werden.
- Mit package können Informationen über alle Transaktionen hinweg verwaltet werden, ohne dass sie in der Datenbank gespeichert werden müssen.
- Pakete tragen zur Verbesserung der Ausführungsleistung bei.
Paketspezifikation
Eine Paketspezifikation ist wie eine Schnittstelle zum Paket. Es kümmert sich um die Deklaration von Variablen, Konstanten, Typen, Ausnahmen, Cursorn und Unterprogrammen. Somit enthält es alle Details zum Paketinhalt, jedoch nicht die Implementierung der Unterprogramme.
Die Objekte in einer Paketspezifikation sind öffentliche Objekte. Alle in einem Paketkörper implementierten Unterprogramme sind private Objekte. Wir können mehrere globale Variablen, Funktionen oder Prozeduren innerhalb der Paketspezifikation deklarieren.
Eine Paketspezifikation ist eine unabhängige Entität und kann ohne Paketkörper existieren.
Code-Implementierung:
CREATE PACKAGE citi AS FUNCTION p_strng RETURN VARCHAR2; END citi; /
Die Ausgabe des obigen Codes:
Paketkörper
Der Paketkörper enthält die Implementierung der in der Paketspezifikation deklarierten Cursor und Unterprogramme. Es ist zu beachten, dass auf die im Paketkörper implementierten Unterprogramme außerhalb des Pakets zugegriffen werden kann, sofern sie in der Paketspezifikation deklariert sind.
Das in der Paketspezifikation und im Body deklarierte Unterprogramm muss genau sein. Dieser Vergleich wird Token für Token ihrer Header durchgeführt. Falls sie nicht übereinstimmen, löst PL / SQL eine Ausnahme aus.
So teilen Sie eine Zeichenfolge in Python nach Zeichen
Der Paketkörper kann andere Unterprogramme enthalten, die nicht in der Paketspezifikation deklariert sind. In diesem Fall sind diese nur für diesen Paketkörper privat. PAKETKÖRPER ERSTELLEN ist das Schlüsselwort zum Erstellen eines Paketkörpers.
Nehmen wir ein Beispiel, um den Paketkörper für das zu erstellen die Anderen Paket.
Fragen und Antworten zu fortgeschrittenen SQL-Interviews pdf
Code-Implementierung mit Paketkörper.
CREATE OR REPLACE PACKAGE BODY citi AS --function implemented FUNCTION p_strng RETURN VARCHAR2 IS BEGIN RETURN 'Software Testing Help!'; END p_strng; END citi; /
Die Ausgabe des obigen Codes sollte sein.
Siehe Paketelemente
Da wir damit fertig sind, die Elemente in der Paketspezifikation zu deklarieren und im Paketkörper zu implementieren, müssen wir auf diese Elemente verweisen. Die Paketelemente bestehen aus den Funktionen, Prozeduren und Variablen.
Auf diese öffentlichen Elemente des Pakets kann über den Paketnamen gefolgt von dem durch die Punktnotation (.) Getrennten Elementnamen zugegriffen werden.
Syntax:
package_name.element_name;
Codierungsimplementierung für den Zugriff auf Elemente:
BEGIN DBMS_OUTPUT.PUT_LINE (citi.p_strng); END;
Die Ausgabe des obigen Codes:
Erstellen Sie ein PL SQL-Paket
Wenn ein Paket in einer Sitzung aufgerufen oder referenziert wird, wird eine neue Instanz dieses Pakets in PL / SQL erstellt. Wir haben die Möglichkeit, die Elemente des Pakets zu initialisieren oder andere Aktionen während der Instanzerstellung mit dem Codeblock Paketinitialisierung auszuführen. Dies ist der ausführbare Codeblock innerhalb des Paketkörpers nach der Initialisierung der Paketelemente.
Syntax der Paketerstellung:
CREATE (OR REPLACE) PACKAGE BODY IS BEGIN END
Hier ist package_n der Name des Pakets.
Ein Paket überladen
Innerhalb eines Pakets mit mehreren Namen können mehrere Unterprogramme vorhanden sein. Diese Funktion ist nützlich, wenn wir homogene Parameter mit heterogenen Datentypen haben möchten. Das Konzept der Überladung innerhalb des Pakets ermöglicht es den Programmierern, die Art der Aktion, die sie ausführen möchten, klar anzugeben.
Codierungsimplementierung mit Prozedurüberladung. (Paket erstellt):
CREATE PACKAGE overloadingprocedure AS Procedure overl_method (p varchar2); Procedure overl_method (numbr number); END overloadingprocedure; /
Die Ausgabe des obigen Codes:
Codierungsimplementierung mit Prozedurüberladung. (Paketkörper erstellt)
CREATE OR REPLACE PACKAGE BODY overloadingprocedure AS --procedure implemented Procedure overl_method (p varchar2) AS BEGIN DBMS_OUTPUT.PUT_LINE ('First Procedure: ' || p); END; --procedure implemented Procedure overl_method (numbr number) AS BEGIN DBMS_OUTPUT.PUT_LINE ('Second Procedure: ' || numbr); END; END; /
Die Ausgabe des obigen Codes:
Codierungsimplementierung mit Prozedurüberladung. (Paketverfahren unter Bezugnahme)
BEGIN overloadingprocedure.overl_method ('Software Testing Help'); overloadingprocedure.overl_method (1); END;
Die Ausgabe des obigen Codes:
PLSQL-Paketabhängigkeit
Die Paketabhängigkeiten in PL / SQL sind unten aufgeführt:
- Eine Paketspezifikation ist eine unabhängige Identität.
- Der Paketkörper ist von der Paketspezifikation abhängig.
- Ein Paketkörper kann nur separat kompiliert werden. Wenn jedoch eine Paketspezifikation kompiliert wird, muss der Body erneut kompiliert werden.
- Eine Funktion oder eine Prozedur innerhalb eines Paketkörpers, die von den privaten Elementen abhängt, sollte nach der Deklaration der privaten Elemente implementiert werden.
Richtlinien zum Erstellen eines Pakets in PL SQL:
- Ein Paket sollte allgemein geschrieben werden, damit es in Zukunft wiederverwendet werden kann.
- Vermeiden Sie doppelte Merkmale in einem Paket.
- Die Paketspezifikation enthält den Schlüssel zu einer ordnungsgemäß gestalteten Anwendung. Vervollständigen Sie die Paketspezifikation, bevor Sie den Paketkörper erstellen.
- Eine Paketspezifikation sollte nur Elemente, Unterprogramme und Typen enthalten, auf die die Paketbenutzer zugreifen müssen. Es sollte keine unnötigen Implementierungsinformationen enthalten.
- Die Paketspezifikation sollte eine begrenzte Anzahl von Artikeln enthalten. Dies spart Zeit für das Neukompilieren des Codes, da eine Änderung der Paketspezifikation erfordert, dass PL / SQL alle Unterprogramme neu kompiliert, die auf das Paket verweisen.
Paketinformationen in PL / SQL
Alle relevanten Details wie die Quelle des Pakets, Unterprogramme und überladene Elemente werden nach dem Erstellen eines Pakets in Datendefinitionstabellen gespeichert.
Die Liste der Datendefinitionstabellen lautet wie folgt:
- USER_PROCEDURES: Diese Tabelle enthält Unterprogramminformationen wie die überladenen Elemente, object_id usw. für den aktuellen Benutzer.
- ALL_PROCEDURES: Diese Tabelle enthält Unterprogramminformationen wie die überladenen Elemente, object_id usw. für alle Benutzer.
- USER_SOURCE: Diese Tabelle enthält die Informationen zur Objektquelle für den aktuellen Benutzer.
- ALL_SOURCE: Diese Tabelle enthält die Informationen zur Objektquelle für alle Benutzer.
- ALL_OBJECT: Diese Tabelle enthält Informationen zum Paket wie das Erstellungsdatum, die Objekt-ID und andere Objektdetails für alle Benutzer.
DBMS-Ausgabe in PL / SQL
Das Paket DBMS_OUTPUT ermöglicht die Anzeige der PL / SQL-Ausgabe, die aus Unterprogrammen und Codeblöcken erzeugt wird. Dies hilft uns beim Debuggen, Testen unseres Codes und Senden von Nachrichten.
Das put_line Die Prozedur erzeugt die Ausgabedaten in einem Puffer. Die Informationen werden mit Hilfe der angezeigt get_line Prozedur oder durch Konfigurieren von SERVEROUTPUT ON in SQL * Plus.
Das DBMS_OUTPUT-Paket enthält die folgenden Unterprogramme:
Sl. Nein. | Name | Zwecke |
---|---|---|
1 | DBMS_OUTPUT.DISABLE | Beschränkt die Nachrichtenausgabe. |
zwei | DBMS_OUTPUT.ENABLE (Puffer IN INTEGER DEFAULT 20000) | Ermöglicht die Nachrichtenausgabe. Wenn der Puffer auf NULL gesetzt ist, repräsentiert er eine unbegrenzte Größe des Puffers. |
3 | DBMS_OUTPUT.GET_LINE (Zeile OUT VARCHAR, Status OUT NUMBER) | Ruft eine gepufferte Information innerhalb einer einzelnen Zeile ab. |
4 | DBMS_OUTPUT.NEW_LINE | Beendet eine Zeilenende-Markierung. |
5 | DBMS_OUTPUT.PUT (Element IN VARCHAR) | Fügt eine unvollständige Zeile in den Puffer ein. |
6 | DBMS_OUTPUT.PUT_LINE (Element IN VARCHAR) | Fügt eine vollständige Zeile in den Puffer ein. |
Code-Implementierung:
DECLARE BEGIN DBMS_OUTPUT.PUT_LINE ('Software Testing Help!'); END;
Die Ausgabe des obigen Codes:
Häufig gestellte Fragen und Antworten
F # 1) Was ist ein Paket in PL SQL?
Antworten: Ein Paket ist ein Objektschema, das logisch verwandte Variablen, Konstanten, Cursor, Unterprogramme und Typen kategorisiert.
F # 2) Was sind die Vorteile von PL SQL-Paketen?
Antwort: Die Vorteile des Pakets sind unten aufgeführt:
- Mit Paketen wird es einfach, Anwendungen zu entwerfen.
- Mit Paketen können wir eine Kapselung erreichen.
- Die Pakete tragen zu einer besseren Leistung in Bezug auf die Ausführungsgeschwindigkeit bei.
- Der Code wird mit Paketen modularer.
F # 3) Können wir einen Paketkörper ohne Spezifikation erstellen?
Antworten: Ja, wir können einen Paketkörper ohne Paketspezifikation erstellen.
F # 4) Was ist Dbms_output Put_line in PL SQL?
Antworten: Die put_line dbms_output ist eine Prozedur in Oracle, mit der wir Informationen in eine flache Datei oder in den PL / SQL-Ausgabebildschirm schreiben können.
F # 5) Was ist Dbms_output?
Antworten: Der dbms_output ist ein Standardpaket, mit dem wir Debugging-Informationen anzeigen, ausgeben und Nachrichten aus den Unterprogrammen, Triggern, Paketen und dem PL / SQL-Codeblock senden können
beste Software zum Klonen von Festplatten
Fazit
In diesem Lernprogramm haben wir einige grundlegende Konzepte zu PL SQL-Paketen ausführlich erläutert, die für die Verwendung in realen Anwendungen unerlässlich sind.
Wir haben die folgenden Themen behandelt:
- Pakete und ihre Struktur.
- Verschiedene Funktionen von Paketen.
- DBMS-Ausgabe.
- Unterprogramme des Pakets DBMS_OUTPUT.
<< PREV Tutorial | NÄCHSTES Tutorial >>
Literatur-Empfehlungen
- PL SQL Tutorial für Anfänger mit Beispielen | Was ist PL / SQL?
- PL SQL Records Tutorial mit Beispielen
- PL SQL Cursor und Strings: Tutorial mit Codebeispielen
- Python DateTime Tutorial mit Beispielen
- Entwicklung von Oracle-Datenbankanwendungen: Oracle SQL & PL / SQL
- Die wichtigsten Fragen zum Oracle-Interview: Fragen zu Oracle Basic, SQL, PL / SQL
- Unterschied zwischen SQL und MySQL und SQL Server (mit Beispielen)
- Die wichtigsten Fragen zum Vorstellungsgespräch für Oracle Forms and Reports