Skillnad mellan visning och lagrad procedur

Anonim

Visa vs lagrad procedur

skapa eller ersätt visningsnamn

som

select_statement;

En lagrad procedur är en kompilerad SQL-kommandosats som är lagrad i databasservern. Varje lagrad procedur har ett anropsnamn som används för att ringa dem i andra paket, procedurer och funktioner. Detta är syntaxen (i ORACLE) för att skapa en lagrad procedur, skapa eller ersätta procedurprocedurenamn (parametrar)

är

start

uttalanden;

undantag

exception_handling

ände;

Visa

En vy fungerar som en virtuell tabell. Det döljer ett utvalt uttalande i sin kropp. Denna valda uttalande kan vara en mycket komplex, som tar data från flera tabeller och vyer. Därför är en mening en namngiven valda uttalande, som lagras i databasen. En vy kan användas för att dölja logiken bakom bordrelationerna från slutanvändarna. Eftersom en vy är ett resultat av en sparad fråga, behåller den inte några data. Den samlar data från basborden och visar. Visningar spelar också en viktig roll i datasäkerhet. När bordsägaren bara behöver visa en uppsättning data till slutanvändare är det en bra lösning att skapa en vy. Visningar kan delas upp i två kategorier

  • Uppdaterbara vyer (Visningar som kan användas för INSERT, UPDATE och DELETE)
  • Ouppdaterbara vyer (Visningar som inte kan användas för INSERT, UPDATE och DELETE)

Uppdaterbara vyer kan inte

DISTINCT

Gruppaggregatfunktioner (AVG, COUNT, MAX, MIN, SUM, etc.)

GRUPP AV Klausul BESTÄLL AV Klausul

ANSLUT TILL Klausul

START MED KVALITET

Samlingsuttryck i en vald lista

Underfråga i A Välj lista

Gå med i fråga

Lagrad procedur

Lagrade procedurer är namngivna programmeringsblock. De måste ha ett namn att ringa. Lagrade procedurer accepterar parametrar som användarinmatning och process enligt logiken bakom proceduren och ger resultatet (eller utför en specifik åtgärd). Variabla deklarationer, variabla uppdrag, kontrollmeddelanden, loopar, SQL-frågor och andra funktioner / procedur / paketsamtal kan ligga inom ramen för förfarandena.

Vad är skillnaden mellan

Visa och lagrad procedur

? Låt oss se skillnaderna mellan dessa två. • Visningar fungerar som virtuella tabeller. De kan användas direkt från nära SQL-frågor (välj), men procedurer kan inte användas från nära sökfrågor.

• Visningar har enbart ett uttalande som sin kropp, men procedurer kan ha variabeldeklarationer, variabla uppdrag, kontroller, loopar, SQL-frågor och andra funktioner / procedurer / paketsamtal som sin kropp.

• Förfarande accepterar parametrar som ska utföras, men vyer vill inte att parametrar ska utföras.

• Spela in typer kan skapas från visningar med% ROWTYPE, men med hjälp av procedurer kan inte skivtyper skapas.

• SQL-tips kan användas inuti, välj valda uttalanden, för att optimera exekveringsplanen, men SQL-tips kan inte användas i lagrade procedurer.

• DELETE, INSERT, UPDATE, SELECT, FLASHBACK och DEBUG kan beviljas på visningar, men endast EXECUTE och DEBUG kan beviljas på rutiner.