Vis kontra lagret prosedyre
Visninger og lagrede prosedyrer er to typer databaseobjekter. Visninger er en slags lagrede spørringer som samler data fra én eller flere tabeller. Her er syntaksen for å lage en visning
opprett eller erstatt visningsvisningsnavn
as
select_statement;
En lagret prosedyre er et forhåndskompilert SQL-kommandosett, som er lagret i databaseserveren. Hver lagret prosedyre har et kallende navn, som brukes til å kalle dem i andre pakker, prosedyrer og funksjoner. Dette er syntaksen (i ORACLE) for å lage en lagret prosedyre, opprett eller erstatt prosedyrenavn (parametere)
er
begynn
statements;
unntak
exception_handling
end;
Vis
A View fungerer som et virtuelt bord. Den skjuler et utvalgt utsagn inne i kroppen. Denne select-setningen kan være svært kompleks, som tar data fra flere tabeller og visninger. Derfor, med andre ord, er en visning en navngitt select-setning, som er lagret i databasen. En visning kan brukes til å skjule logikken bak tabellrelasjonene for sluttbrukere. Siden en visning er et resultat av en lagret spørring, beholder den ingen data. Den samler inn data fra basistabellene og viser. Visninger spiller også en viktig rolle i datasikkerhet. Når tabelleieren bare trenger å vise et sett med data til sluttbrukere, er det en god løsning å lage en visning. Visninger kan deles inn i to kategorier
- Oppdaterbare visninger (visninger som kan brukes til INSERT, UPDATE og DELETE)
- Ikke-oppdaterbare visninger (visninger som ikke kan brukes til INSERT, UPDATE og DELETE)
Oppdaterbare visninger kan ikke inkludere følger, Angi operatører (INTERSECT, MINUS, UNION, UNION ALL)
DISTINCT
Aggregerte gruppefunksjoner (AVG, COUNT, MAX, MIN, SUM osv.)
GROUP BY-klausul
ORDER BY-klausul
CONNECT BY-klausul
START MED Klausul
Samlingsuttrykk i en utvalgt liste
Undersøk i en utvalgt liste
Bli med i spørring
Lagret prosedyre
Lagrede prosedyrer kalles programmeringsblokker. De må ha et navn å kalle. Lagrede prosedyrer aksepterer parametere som brukerinndata og prosesser i henhold til logikken bak prosedyren og gir resultatet (eller utfører en spesifikk handling). Variabledeklarasjoner, variabeltilordninger, kontrollsetninger, løkker, SQL-spørringer og andre funksjoner/prosedyre/pakkekall kan være inne i prosedyrene.
Hva er forskjellen mellom visning og lagret prosedyre?
La oss se forskjellene mellom disse to.
• Views fungerer som virtuelle tabeller. De kan brukes direkte i fra slutten av SQL-spørringer (velg), men prosedyrer kan ikke brukes i fra slutten av spørringer.
• Visninger har bare en select-setning som body, men prosedyrer kan ha variabeldeklarasjoner, variabeltilordninger, kontrollsetninger, loops, SQL-spørringer og andre funksjoner/prosedyre/pakkekall som body.
• Prosedyre godtar parametere som skal kjøres, men visninger vil ikke at parametere skal kjøres.
• Posttyper kan opprettes fra visninger som bruker % ROWTYPE, men ved hjelp av prosedyrer kan ikke posttyper opprettes.
• SQL-hint kan brukes innvendig visning select-setning for å optimalisere utførelsesplanen, men SQL-hint kan ikke brukes i lagrede prosedyrer.
• DELETE, INSERT, UPDATE, SELECT, FLASHBACK og DEBUG kan gis på visninger, men bare EXECUTE og DEBUG kan gis på prosedyrer.