Forskjellen mellom lagret prosedyre og funksjon

Innholdsfortegnelse:

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

Video: Forskjellen mellom lagret prosedyre og funksjon

Video: Forskjellen mellom lagret prosedyre og funksjon
Video: What is Centripetal force? 2024, Juli
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: