Verschil tussen opgeslagen procedure en functie
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. |