Vis vs. lagret procedure
Visninger og lagrede procedurer er to typer databaseobjekter. Visninger er en slags lagrede forespørgsler, som samler data fra en eller flere tabeller. Her er syntaksen til at oprette en visning
opret eller erstat visningsvisningsnavn
as
select_statement;
En lagret procedure er et forudkompileret SQL-kommandosæt, som er lagret i databaseserveren. Hver lagret procedure har et kaldende navn, som bruges til at kalde dem inde i andre pakker, procedurer og funktioner. Dette er syntaksen (i ORACLE) til at oprette en lagret procedure, opret eller erstat procedurenavn (parametre)
er
begynd
udsagn;
undtagelse
exception_handling
end;
Vis
A View fungerer som et virtuelt bord. Den gemmer et udvalgt udsagn inde i sin krop. Denne select-sætning kan være meget kompleks, som tager data fra flere tabeller og visninger. Derfor er en visning med andre ord en navngivet select-sætning, som er gemt i databasen. En visning kan bruges til at skjule logikken bag tabelrelationerne for slutbrugere. Da en visning er et resultat af en gemt forespørgsel, gemmer den ingen data. Den samler data fra basistabellerne og viser. Visninger spiller også en vigtig rolle i datasikkerheden. Når tabelejeren kun skal vise et sæt data til slutbrugere, er det en god løsning at oprette en visning. Visninger kan opdeles i to kategorier
- Opdaterbare visninger (visninger, som kan bruges til INSERT, UPDATE og DELETE)
- Ikke-opdaterbare visninger (visninger, som ikke kan bruges til INSERT, UPDATE og DELETE)
Opdaterbare visninger kan ikke inkludere følger, Indstil operatører (INTERSECT, MINUS, UNION, UNION ALL)
DISTINCT
Aggregerede gruppefunktioner (AVG, COUNT, MAX, MIN, SUM osv.)
GROUP BY-klausul
ORDER BY Clause
CONNECT BY-klausul
START MED Klausul
Samlingsudtryk på en udvalgt liste
Underforespørgsel i en udvalgt liste
Deltag i forespørgsel
lagret procedure
Lagrede procedurer kaldes programmeringsblokke. De skal have et navn at kalde. Lagrede procedurer accepterer parametre som brugerinput og proces i henhold til logikken bag proceduren og giver resultatet (eller udfører en specifik handling). Variabelerklæringer, variabeltildelinger, kontrolsætninger, loops, SQL-forespørgsler og andre funktioner/procedure/pakkekald kan være inde i procedureteksten.
Hvad er forskellen mellem View og Stored Procedure?
Lad os se forskellene mellem disse to.
• Visninger fungerer som virtuelle borde. De kan bruges direkte i fra slutningen af SQL-forespørgsler (vælg), men procedurer kan ikke bruges i fra slutningen af forespørgsler.
• Views har kun en select-sætning som deres krop, men procedurer kan have variabeldeklarationer, variabeltildelinger, kontrolsætninger, loops, SQL-forespørgsler og andre funktioner/procedure/pakkekald som sin krop.
• Proceduren accepterer parametre, der skal udføres, men visninger ønsker ikke, at parametrene udføres.
• Posttyper kan oprettes fra visninger ved hjælp af % ROWTYPE, men ved hjælp af procedurer kan posttyper ikke oprettes.
• SQL-tip kan bruges indefra for at optimere udførelsesplanen, men SQL-tip kan ikke bruges i lagrede procedurer.
• DELETE, INSERT, UPDATE, SELECT, FLASHBACK og DEBUG kan tildeles på visninger, men kun EXECUTE og DEBUG kan tildeles på procedurer.