sql >> Database teknologi >  >> RDS >> Oracle

Funktioner vs procedurer i Oracle

Forskellen er- En funktion skal returnere en værdi (af enhver type) som standarddefinition af den, mens du i tilfælde af en procedure skal bruge parametre som OUT eller IN OUT parametre for at få resultaterne. Du kan bruge en funktion i en normal SQL hvor du ikke kan bruge en procedure i SQL udsagn.

Nogle forskelle mellem funktioner og procedurer

  1. En funktion returnerer altid en værdi ved hjælp af return-sætningen, mens en procedure kan returnere en eller flere værdier gennem parametre eller slet ikke returnerer. Selvom OUT parametre kan stadig bruges i funktioner, de er ikke tilrådelige, og der er heller ikke tilfælde, hvor man kan finde et behov for at gøre det. Brug af OUT parameter begrænser en funktion i at blive brugt i en SQL-sætning.

  2. Funktioner kan bruges i typiske SQL-sætninger som SELECT , INSERT , UPDATE , DELETE , MERGE , mens procedurer ikke kan.

  3. Funktioner bruges normalt til beregninger, hvor procedurer normalt bruges til at udføre forretningslogik.

  4. Oracle giver mulighed for at skabe "funktionsbaserede indekser" for at forbedre ydeevnen af ​​den efterfølgende SQL-sætning. Dette gælder, når du udfører funktionen på en indekseret kolonne i where-sætning af en forespørgsel.

Flere oplysninger om funktioner vs. Procedurer her og her.



  1. Indsætte hele DataTable i databasen på én gang i stedet for række for række?

  2. Oprettelse af en Java-applikation i Oracle JDeveloper, del 2

  3. Henter den sidste post i hver gruppe - MySQL

  4. Ret Msg 512 "Underforespørgsel returnerede mere end 1 værdi" i SQL Server