Verschil tussen opgeslagen procedure en functie

Anonim

Stored Procedure vs Function

Opgeslagen procedures en functies zijn twee typen programmeringsblokken. Beiden moeten namen hebben genoemd. Dergelijke namen worden gebruikt om ze te bellen binnen een ander programmeringsblok, zoals proceduresfuncties en pakketten of SQL-query's. Beide objecten accepteren parameters en voeren de taak achter die objecten uit. Dit is de syntaxis (in ORACLE) om een ​​opgeslagen procedure te maken,

procedureprocedurenaam (parameters) maken of vervangen

als

begin

statements;

behalve

exception_handling

einde;

En hier is de syntaxis om een ​​functie te creëren (in ORACLE),

functiefunctienaam (parameters) maken of vervangen

retour retour_datatype

als

begin

statements;

retour retourwaarde / variabele;

uitzondering;

exception_handling;

einde;

opgeslagen procedures

Zoals hierboven vermeld zijn opgeslagen procedures de naam van de programmeringsblokken. Zij accepteren parameters als invoer van gebruikers en verwerken volgens de logica achter de procedure en geven het resultaat (of voer een specifieke actie uit). Deze parameters kunnen IN, OUT en INOUT typen zijn. Variabele aangiften, variabele opdrachten, controle statements, lussen, SQL-query's en andere functies / procedure / pakketoproepen kunnen binnen de procedure zijn.

Functies

Functies zijn ook de naam van de programmeringsblokken, die een waarde moeten terugzetten met behulp van de RETURN-instructie, en voordat het een waarde retourneert, voert zijn lichaam ook enkele acties uit (volgens de gegeven logica). Functies accepteren ook parameters om te draaien. Functies kunnen binnen de vragen worden genoemd. Wanneer een functie wordt genoemd binnen een SELECT-query, is het van toepassing op elke rij van de resultaatreeks van de SELECT-query. Er zijn verschillende categorieën van ORACLE functies. Zij zijn,

  • Enkele rijfuncties (geeft een enkel resultaat voor elke rij van de query)

Er zijn subcategorieën van een enkele rijfunctie.

  • Numerieke functie (Ex: ABS, SIN, COS)
  • Karakterfunctie (Ex: CONCAT, INITCAP)
  • Datumtijdfunctie (Ex: LAST_DAY, NEXT_DAY)
  • Conversiefuncties (Ex: TO_CHAR, TO_DATE)
  • Collectieve functie (Ex: CARDINALITY, SET)
  • Aggregate functies (Retourneert een enkele rij, gebaseerd op een groep rijen. Ex: AVG, SUM, MAX)
  • Analytische functies
  • Object referentie functies
  • Modelfuncties
  • Gebruikers gedefinieerde functies

Wat is het verschil tussen functie en opgeslagen procedure?

• Alle functies moeten een waarde retourneren met de RETURN-instructie. Opgeslagen procedures verzenden geen waarden met behulp van de RETURN-instructie. RETURN statement in een procedure zal de controle terugzetten naar het bellen programma. OUT-parameters kunnen worden gebruikt om waarden van opgeslagen procedures terug te keren.

• Functies kunnen binnen de vragen worden genoemd, maar opgeslagen procedures kunnen niet binnen de vragen worden gebruikt.

• Het type RETURN-data moet worden opgenomen om een ​​functie te maken, maar in de opgeslagen procedure DDL is het niet.