Forskjellen mellom lagret prosedyre og funksjon

Forskjellen mellom lagret prosedyre og funksjon
Forskjellen mellom lagret prosedyre og funksjon
Anonim

Lagret prosedyre kontra funksjon

Lagrede prosedyrer og funksjoner er to typer programmeringsblokker. Begge må ha kallenavn. Disse kallenavnene brukes til å kalle dem inne i en annen programmeringsblokk som prosedyrefunksjoner 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 prosedyrenavn (parametere)

as

begynn

statements;

unntak

exception_handling

end;

Og her er syntaksen for å lage en funksjon (i ORACLE), opprett eller erstatt funksjon funksjonsnavn (parametere)

retur return_datatype

as

begynn

statements;

return return_value/variable;

unntak;

exception_handling;

end;

lagrede prosedyrer

Som nevnt ovenfor kalles lagrede prosedyrer programmeringsblokker. De aksepterer parametere som brukerinndata og prosesser i henhold til logikken bak prosedyren og gir resultatet (eller utfører en spesifikk handling). Disse parameterne kan være IN, OUT og INOUT typene. Variabelerklæringer, variabeltilordninger, kontrollsetninger, løkker, SQL-spørringer og andre funksjoner/prosedyre/pakkekall kan være inne i prosedyrene.

Functions

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 gitte logikken). Funksjoner aksepterer også parametere som skal kjøres. 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 til SELECT-spørringen. Det finnes flere kategorier av ORACLE-funksjoner. De er,

Enkeltradsfunksjoner (returnerer ett enkelt resultat for hver rad i søket)

Det er underkategorier av funksjoner med en enkelt rad.

  • Numerisk funksjon (eks.: ABS, SIN, COS)
  • Tegnfunksjon (eks.: CONCAT, INITCAP)
  • Dato-tidsfunksjon (eks.: LAST_DAY, NEXT_DAY)
  • Konverteringsfunksjoner (eks.: TO_CHAR, TO_DATE)
  • Samlingsfunksjon (eks.: CARDINALITY, SET)
  • Aggregerte funksjoner (returnerer en enkelt rad, basert på en gruppe med 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 å bruke RETURN-setningen. Lagrede prosedyrer returnerer ikke verdier med RETURN-setning. RETURN-setning i en prosedyre vil returnere kontrollen til det anropende programmet. OUT-parametere kan brukes til å returnere verdier fra lagrede prosedyrer.

• Funksjoner kan kalles inne i spørringene, men lagrede prosedyrer kan ikke brukes inne i spørringene.

• RETURN-datatypen må inkluderes for å lage en funksjon, men i lagret prosedyre DDL er den ikke det.

Anbefalt: