Visa kontra lagrad procedur
Visningar och lagrade procedurer är två typer av databasobjekt. Vyer är en sorts lagrade frågor som samlar in data från en eller flera tabeller. Här är syntaxen för att skapa en vy
skapa eller ersätt vynamn
as
select_statement;
En lagrad procedur är en förkompilerad SQL-kommandouppsättning, som lagras i databasservern. Varje lagrad procedur har ett anropsnamn, som används för att anropa dem i andra paket, procedurer och funktioner. Detta är syntaxen (i ORACLE) för att skapa en lagrad procedur, skapa eller ersätt procedurens namn (parametrar)
är
begin
statements;
exception
exception_handling
end;
Visa
A View fungerar som ett virtuellt bord. Den döljer ett utv alt uttalande i kroppen. Denna select-sats kan vara mycket komplex, som tar data från flera tabeller och vyer. Därför, med andra ord, är en vy en namngiven select-sats, som lagras i databasen. En vy kan användas för att dölja logiken bakom tabellrelationerna för slutanvändare. Eftersom en vy är ett resultat av en lagrad fråga behåller den ingen data. Den samlar in data från bastabellerna och visar. Åsikter spelar också en viktig roll för datasäkerhet. När tabellägaren bara behöver visa en uppsättning data för slutanvändare är det en bra lösning att skapa en vy. Visningar kan delas in i två kategorier
- Uppdaterbara vyer (vyer som kan användas för INSERT, UPDATE och DELETE)
- Icke-uppdateringsbara vyer (vyer som inte kan användas för INSERT, UPDATE och DELETE)
Uppdaterbara vyer kan inte inkludera följande, Ange operatörer (INTERSECT, MINUS, UNION, UNION ALL)
DISTINCT
Aggregerade gruppfunktioner (AVG, COUNT, MAX, MIN, SUM, etc.)
GROUP BY-klausul
ORDER BY Clause
CONNECT BY-klausul
BÖRJA MED Klausul
Samlingsuttryck i en utvald lista
Subquery in A Select List
Gå med i fråga
Lagrad procedur
Lagrade procedurer kallas programmeringsblock. De måste ha ett namn att kalla. Lagrade procedurer accepterar parametrar som användarinmatning och process enligt logiken bakom proceduren och ger resultatet (eller utför en specifik åtgärd). Variabeldeklarationer, variabeltilldelningar, kontrollsatser, loopar, SQL-frågor och andra funktioner/procedurer/paketanrop kan finnas inne i procedurerna.
Vad är skillnaden mellan visning och lagrad procedur?
Låt oss se skillnaderna mellan dessa två.
• Views fungerar som virtuella tabeller. De kan användas direkt i från slutet av SQL-frågor (välj), men procedurer kan inte användas i från slutet av frågor.
• Views har bara en select-sats som sin body, men procedurer kan ha variabeldeklarationer, variabeltilldelningar, kontrollsatser, loopar, SQL-frågor och andra funktioner/procedur/paketanrop som body.
• Procedur accepterar parametrar som ska köras, men vyer vill inte att parametrar ska köras.
• Posttyper kan skapas från vyer med % ROWTYPE, men med hjälp av procedurer kan posttyper inte skapas.
• SQL-tips kan användas inuti view select-satsen för att optimera exekveringsplanen, men SQL-tips kan inte användas i lagrade procedurer.
• DELETE, INSERT, UPDATE, SELECT, FLASHBACK och DEBUG kan beviljas för visningar, men endast EXECUTE och DEBUG kan beviljas för procedurer.