2012-10-17 11 views
10

Ich suchte Google, fand aber keine befriedigende Antwort, warum ich Pakete verwenden sollte.Oracle - Warum sollte ich Pakete anstelle von eigenständigen Verfahren oder Funktionen verwenden

Ich weiß, dass ein Paket ein Bündel von Prozeduren, Funktionen und verschiedenen Variablen ist. Wie ich es verstehe, entspricht es dem Objekt in OOP. Aber natürlich gibt es nichts Besseres, als verschiedene Instanzen eines Pakets zu instanziieren, so dass jede Instanz unterschiedliche Eigenschaftswerte hat und sich anders verhält.

Was ist dann der Vorteil der Verwendung von Paketen, wenn ich nur eine eigenständige Prozedur erstellen und sie unabhängig aufrufen kann?

+2

[Tom Kyte Meinung] (http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:7452431376537) –

+3

Pakete sind ** nicht ** über "Objekte". Ein Oracle (Objekt) 'TYPE' mit der Fähigkeit, eigene Methoden und Konstruktoren zu haben, ist das Äquivalent zu einem Objekt in OOP. –

Antwort

23

Pakete bieten die folgenden Vorteile:

  1. Kohäsion: Alle Verfahren und auf ein specfic Subsystems beziehen Funktionen sind in einer Programmeinheit. Dies ist nur eine gute Entwurfspraxis, aber es ist auch einfacher zu verwalten, z.B. in der Quellcodeverwaltung.
  2. Konstanten, Untertypen und andere nützliche Dinge: PL/SQL ist mehr als gespeicherte Prozeduren. Alles, was wir in einer Paketspezifikation definieren können, kann mit anderen Programmen geteilt werden, zum Beispiel benutzerdefinierten Ausnahmen.
  3. Überladung: die Möglichkeit, eine Prozedur oder Funktion mit dem gleichen Namen, aber verschiedenen Signaturen zu definieren.
  4. Sicherheit: Definieren von privaten Prozeduren im Pakethauptteil, die nur vom Paket verwendet werden können, da sie in der Spezifikation nicht aufgeführt sind.
  5. Gemeinsamen Code teilen: ein weiterer Vorteil von privaten Verfahren.
  6. Wir müssen EXECUTE nur für ein Paket und nicht für mehrere Prozeduren gewähren.
10

Wie in Oracle docs beschrieben, sind Pakete gut, weil:

  • Modularität
  • einfaches Anwendungsdesign
  • Informationen versteckt
  • Funktionalität

Einzelheiten

  • bessere Leistung hinzugefügt O n jeder Grund wird in den Dokumenten erklärt.

  • Verwandte Themen