Bekijken vs opgeslagen procedure
Views en opgeslagen procedures zijn twee soorten database-objecten. Weergaven zijn een soort opgeslagen zoekopdrachten, die gegevens verzamelen uit een of meer tabellen. Hier is de syntaxis om een weergave te maken
creëren of vervangen view viewname
as
select_statement;
Een opgeslagen procedure is een vooraf gecompileerde SQL-opdrachtenset, die is opgeslagen op de databaseserver. Elke opgeslagen procedure heeft een aanroepnaam, die wordt gebruikt om ze aan te roepen in andere pakketten, procedures en functies. Dit is de syntaxis (in ORACLE) om een opgeslagen procedure te maken, procedurenaam aanmaken of vervangen (parameters)
is
begin
verklaringen;
uitzondering
exception_handling
end;
Bekijken
A View fungeert als een virtuele tafel. Het verbergt een select statement in zijn lichaam. Deze select-instructie kan zeer complex zijn, waarbij gegevens uit verschillende tabellen en weergaven worden gehaald. Met andere woorden, een view is daarom een benoemde select-instructie, die in de database wordt opgeslagen. Een view kan worden gebruikt om de logica achter de tabelrelaties voor eindgebruikers te verbergen. Aangezien een weergave het resultaat is van een opgeslagen zoekopdracht, worden er geen gegevens bijgehouden. Het verzamelt gegevens uit de basistabellen en shows. Weergaven spelen ook een belangrijke rol bij gegevensbeveiliging. Wanneer de tabeleigenaar alleen een set gegevens aan eindgebruikers hoeft te tonen, is het maken van een weergave een goede oplossing. Weergaven kunnen worden onderverdeeld in twee categorieën
- Updatable views (Views die kunnen worden gebruikt voor INSERT, UPDATE en DELETE)
- Niet-bijwerkbare weergaven (weergaven die niet kunnen worden gebruikt voor INSERT, UPDATE en DELETE)
Updateerbare weergaven kunnen geen volgers bevatten, Operatoren instellen (INTERSECTEN, MINUS, UNION, UNION ALL)
DISTINCT
Groepsaggregatiefuncties (AVG, COUNT, MAX, MIN, SUM, etc.)
GROEPEN OP clausule
BESTEL OP clausule
VERBINDEN PER clausule
BEGIN MET clausule
Verzamelingsuitdrukking in een selectielijst
Subquery in A Select List
Deelnemen aan Query
Opgeslagen procedure
Opgeslagen procedures worden programmeerblokken genoemd. Ze moeten een naam hebben om te bellen. Opgeslagen procedures accepteren parameters als gebruikersinvoer en verwerken volgens de logica achter de procedure en geven het resultaat (of voeren een specifieke actie uit). Variabele declaraties, variabele toewijzingen, controle-statements, loops, SQL-query's en andere functies/procedure/pakketaanroepen kunnen zich in de hoofdtekst van procedures bevinden.
Wat is het verschil tussen bekijken en opgeslagen procedure?
Laten we de verschillen tussen deze twee eens bekijken.
• Weergaven fungeren als virtuele tabellen. Ze kunnen direct worden gebruikt vanaf het einde van SQL-query's (selecteren), maar procedures kunnen niet worden gebruikt vanaf het einde van query's.
• Views hebben alleen een select-instructie als hoofdtekst, maar procedures kunnen variabelendeclaraties, variabeletoewijzingen, besturingsinstructies, loops, SQL-query's en andere functies/procedure/pakketaanroepen als hoofdtekst hebben.
• Procedure accepteert parameters om uit te voeren, maar views willen niet dat parameters worden uitgevoerd.
• Recordtypen kunnen worden gemaakt van weergaven met % ROWTYPE, maar met behulp van procedures kunnen recordtypen niet worden gemaakt.
• SQL-hints kunnen worden gebruikt in de view select-instructie, om het uitvoeringsplan te optimaliseren, maar SQL-hints kunnen niet worden gebruikt in opgeslagen procedures.
• DELETE, INSERT, UPDATE, SELECT, FLASHBACK en DEBUG kunnen worden verleend voor weergaven, maar alleen EXECUTE en DEBUG kunnen worden verleend voor procedures.