Unterschied zwischen Ansicht und gespeicherter Prozedur

Anonim

Ansichten und gespeicherte Prozeduren

erfassen oder ersetzen view viewname

als

select_statement;

Eine gespeicherte Prozedur ist ein vorkompilierter SQL-Befehlssatz, der auf dem Datenbankserver gespeichert wird. Jede gespeicherte Prozedur hat einen aufrufenden Namen, mit dem sie in anderen Paketen, Prozeduren und Funktionen aufgerufen werden. Dies ist die Syntax (in ORACLE) zum Erstellen einer gespeicherten Prozedur, Prozedurname (Parameter) erstellen oder ersetzen

ist

begin

Anweisungen;

Ausnahme

exception_handling

end;

Ansicht

Eine Ansicht dient als virtuelle Tabelle. Es versteckt eine select-Anweisung in seinem Körper. Diese select-Anweisung kann sehr komplex sein und Daten aus mehreren Tabellen und Sichten aufnehmen. Mit anderen Worten, eine Sicht ist also eine benannte select-Anweisung, die in der Datenbank gespeichert ist. Eine Sicht kann verwendet werden, um die Logik hinter den Tabellenbeziehungen von Endbenutzern zu verbergen. Da eine Sicht das Ergebnis einer gespeicherten Abfrage ist, werden keine Daten gespeichert. Es sammelt Daten aus den Basistabellen und zeigt. Ansichten spielen auch in der Datensicherheit eine wichtige Rolle. Wenn der Tabelleneigentümer den Endbenutzern nur eine Datenmenge anzeigen muss, ist die Erstellung einer Sicht eine gute Lösung. Ansichten können in zwei Kategorien unterteilt werden

  • Aktualisierbare Ansichten (Ansichten, die für INSERT, UPDATE und DELETE verwendet werden können)
  • Nicht aktualisierbare Ansichten (Ansichten, die nicht für INSERT, UPDATE und DELETE verwendet werden können)

Aktualisierbare Ansichten können nicht

GRUPPEN-BY-Klausel

Gruppenaggregationsfunktionen (AVG, COUNT, MAX, MIN, SUMME usw.)

> ORDER BY Klausel

CONNECT BY Klausel

START WITH Klausel

Sammelausdruck in einer Auswahlliste

Unterabfrage in A Auswahlliste

Query hinzufügen

Gespeicherte Prozedur

benannte Programmierblöcke. Sie müssen einen Namen haben, um anzurufen. Gespeicherte Prozeduren akzeptieren Parameter als Benutzereingaben und verarbeiten entsprechend der Logik hinter der Prozedur und geben das Ergebnis an (oder führen eine bestimmte Aktion aus). Variable Deklarationen, Variablenzuweisungen, Steueranweisungen, Schleifen, SQL-Abfragen und andere Funktionen / Prozeduren / Paketaufrufe können innerhalb der Prozeduren liegen.

Was ist der Unterschied zwischen

Ansicht und gespeicherter Prozedur

? Lassen Sie uns die Unterschiede zwischen diesen beiden sehen. • Ansichten fungieren als virtuelle Tabellen. Sie können direkt beim Schließen von SQL-Abfragen verwendet werden (select), aber Prozeduren können nicht aus dem Schließen von Abfragen verwendet werden.

• Ansichten haben nur eine select-Anweisung als ihren Körper, aber Prozeduren können Variablen-Deklarationen, Variablen-Zuweisungen, Steueranweisungen, Schleifen, SQL-Abfragen und andere Funktionen / Prozeduren / Paketaufrufe als Körper haben.

• Die Prozedur akzeptiert Parameter, die ausgeführt werden sollen, aber die Aufrufe dürfen keine Parameter ausführen.

• Datensatztypen können aus Ansichten erstellt werden, die% ROWTYPE verwenden, aber mithilfe von Prozeduren können Datensatztypen nicht erstellt werden.

• SQL-Hinweise können innerhalb der view select -Anweisung verwendet werden, um den Ausführungsplan zu optimieren, aber SQL-Hinweise können in gespeicherten Prozeduren nicht verwendet werden.

• LÖSCHEN, EINFÜGEN, AKTUALISIEREN, AUSWÄHLEN, FLASHBACK und DEBUG können für Ansichten gewährt werden, jedoch können nur Prozeduren EXECUTE und DEBUG erteilt werden.