Skillnaden mellan lagrad procedur och funktion

Innehållsförteckning:

Skillnaden mellan lagrad procedur och funktion
Skillnaden mellan lagrad procedur och funktion

Video: Skillnaden mellan lagrad procedur och funktion

Video: Skillnaden mellan lagrad procedur och funktion
Video: What is Centripetal force? 2024, November
Anonim

Lagrad procedur kontra funktion

Lagrade procedurer och funktioner är två typer av programmeringsblock. Båda måste ha kallade namn. Dessa anropande namn används för att anropa dem inuti ett annat programmeringsblock som procedurer funktioner och paket eller SQL-frågor. Båda dessa objekttyper accepterar parametrar och utför uppgiften bakom dessa objekt. Detta är syntaxen (i ORACLE) för att skapa en lagrad procedur, skapa eller ersätt procedurens namn (parametrar)

as

begynn

statements;

exception

exception_handling

end;

Och här är syntaxen för att skapa en funktion (i ORACLE), skapa eller ersätt funktion funktionsnamn (parametrar)

retur return_datatype

as

begynn

statements;

retur return_value/variable;

exception;

exception_handling;

end;

Lagrade procedurer

Som nämnts ovan kallas lagrade procedurer för programmeringsblock. De accepterar parametrar som användarinmatning och process enligt logiken bakom proceduren och ger resultatet (eller utför en specifik åtgärd). Dessa parametrar kan vara IN-, OUT- och INOUT-typer. Variabeldeklarationer, variabeltilldelningar, kontrollsatser, loopar, SQL-frågor och andra funktioner/procedur/paketanrop kan finnas inne i procedurerna.

Funktioner

Funktioner kallas också för programmeringsblock, som måste returnera ett värde med RETURN-satsen, och innan de returnerar ett värde, utför dess kropp vissa åtgärder också (enligt den givna logiken). Funktioner accepterar också parametrar att köra. Funktioner kan anropas inne i frågorna. När en funktion anropas i en SELECT-fråga gäller den för varje rad i resultatuppsättningen för SELECT-frågan. Det finns flera kategorier av ORACLE-funktioner. De är,

Enkelradsfunktioner (returnerar ett enda resultat för varje rad i frågan)

Det finns underkategorier av funktioner med en enda rad.

  • Numerisk funktion (t.ex.: ABS, SIN, COS)
  • Teckenfunktion (Ex: CONCAT, INITCAP)
  • Datum-tidsfunktion (t.ex.: LAST_DAY, NEXT_DAY)
  • Konverteringsfunktioner (t.ex.: TO_CHAR, TO_DATE)
  • Insamlingsfunktion (ex.: CARDINALITY, SET)
  • Aggregerade funktioner (Returnerar en enstaka rad, baserat på en grupp rader. Ex: AVG, SUM, MAX)
  • Analytiska funktioner
  • Objektreferensfunktioner
  • Modellfunktioner
  • Användardefinierade funktioner

Vad är skillnaden mellan funktion och lagrad procedur?

• Alla funktioner måste returnera ett värde med RETURN-satsen. Lagrade procedurer returnerar inte värden med RETURN-satsen. RETURN-satsen i en procedur kommer att återföra dess kontroll till det anropande programmet. OUT-parametrar kan användas för att returnera värden från lagrade procedurer.

• Funktioner kan anropas inuti frågorna, men lagrade procedurer kan inte användas i frågorna.

• RETURN-datatypen måste inkluderas för att skapa en funktion, men i lagrad procedur DDL är den inte det.

Rekommenderad: