Forskjell mellom lagret prosedyre og funksjon
Lagret prosedyre mot funksjon
Lagrede prosedyrer og funksjoner er to typer programmeringsblokker. Begge må ha ringer navn. De kaller navnene brukes til å ringe dem inn i en annen programmeringsblokk som prosedyrerfunksjoner og pakker eller SQL-spørringer. Begge disse objekttypene godtar parametere og utfører oppgaven bak disse objektene. Dette er syntaksen (i ORACLE) for å lage en lagret prosedyre,
opprett eller erstatt prosedyreprosessnavn (parametere)
som
begynne
uttalelser;
unntak
exception_handling
end;
Og her er syntaksen for å lage en funksjon (i ORACLE),
opprett eller erstatt funksjonsfunksjonsnavn (parametere)
retur return_datatype
som
begynn
uttalelser;
returnere retur / verdi / variabel;
unntak;
exception_handling;
end;
Lagrede prosedyrer
Som nevnt ovenfor er lagrede prosedyrer kalt programmeringsblokker. De aksepterer parametere som brukerinngang og prosess i henhold til logikken bak prosedyren og gir resultatet (eller utfører en bestemt handling). Disse parametrene kan være IN, OUT og INOUT. Variabeldeklarasjoner, variable oppgaver, kontrollopplysninger, sløyfer, SQL-spørringer og andre funksjoner / prosedyre / pakkeanrop kan være inne i prosedyrene.
Funksjoner
Funksjoner kalles også programmeringsblokker, som må returnere en verdi ved hjelp av RETURN-setningen, og før den returnerer en verdi, utfører kroppen også noen handlinger (i henhold til den oppgitte logikken). Funksjoner aksepterer også parametere for å kjøre. Funksjoner kan kalles inne i spørringene. Når en funksjon kalles inne i en SELECT-spørring, gjelder den for hver rad i resultatsettet for SELECT-spørringen. Det finnes flere kategorier av ORACLE-funksjoner. De er,
- Enkeltradsfunksjoner (returnerer et enkelt resultat for hver rad av spørringen)
Det finnes underkategorier av en enkelt radfunksjon.
- Numerisk funksjon (Eks: ABS, SIN, COS)
- Tegnfunksjon (Eks: CONCAT, INITCAP)
- Datotidfunksjon (Ex: LAST_DAY, NEXT_DAY)
- Konverteringsfunksjoner (Ex: TO_CHAR, TO_DATE)
- Samlingsfunksjon (Eks: KARDINALITET, SET)
- Aggregatfunksjoner (Returnerer en enkelt rad, basert på en gruppe rader. Eks: AVG, SUM, MAX)
- Analytiske funksjoner
- Objektreferansefunksjoner
- Modellfunksjoner
- Brukerdefinerte funksjoner
Hva er forskjellen mellom funksjon og lagret prosedyre? • Alle funksjoner må returnere en verdi ved hjelp av RETURN-setningen. Lagrede prosedyrer returnerer ikke verdier ved hjelp av RETURN-setningen. RETURN-setningen inne i en prosedyre vil returnere kontrollen til anropsprogrammet. OUT-parametere kan brukes til å returnere verdier fra lagrede prosedyrer. • Funksjoner kan kalles inne i spørringene, men lagrede prosedyrer kan ikke brukes innenfor spørringene. • RETURN datatype må inkluderes for å opprette en funksjon, men i lagret prosedyre DDL, er det ikke. |