Gestoorde prosedure teenoor funksie
Gestoorde prosedures en funksies is twee tipes programmeringsblokke. Albei van hulle moet roepname hê. Daardie roepname word gebruik om hulle binne 'n ander programmeringsblok soos prosedurefunksies en -pakkette of SQL-navrae te noem. Albei hierdie voorwerptipes aanvaar parameters en voer die taak agter daardie voorwerpe uit. Dit is die sintaksis (in ORACLE) om 'n gestoorde prosedure te skep, skep of vervang prosedure-prosedurenaam (parameters)
as
begin
stellings;
uitsondering
exception_handling
end;
En hier is die sintaksis om 'n funksie te skep (in ORACLE), skep of vervang funksie funksienaam (parameters)
return return_datatype
as
begin
stellings;
return terugkeerwaarde/veranderlike;
uitsondering;
exception_hantering;
end;
Gestoorde prosedures
Soos hierbo genoem, word gestoorde prosedures programmeerblokke genoem. Hulle aanvaar parameters as gebruikersinvoer en verwerk volgens die logika agter die prosedure en gee die resultaat (of voer 'n spesifieke aksie uit). Hierdie parameters kan IN-, UIT- en INOUT-tipes wees. Veranderlike verklarings, veranderlike opdragte, beheerstellings, lusse, SQL-navrae en ander funksies/prosedure/pakketoproepe kan binne die liggaam van prosedures wees.
Functions
Funksies word ook programmeerblokke genoem, wat 'n waarde moet terugstuur met RETURN-stelling, en voordat dit 'n waarde terugstuur, voer sy liggaam ook 'n paar aksies uit (volgens die gegewe logika). Funksies aanvaar ook parameters om te hardloop. Funksies kan binne die navrae geroep word. Wanneer 'n funksie binne 'n SELECT-navraag geroep word, is dit van toepassing op elke ry van die resultaatstel van die SELECT-navraag. Daar is verskeie kategorieë van ORACLE-funksies. Hulle is,
Enkelry-funksies (gee 'n enkele resultaat vir elke ry van die navraag terug)
Daar is subkategorieë van 'n enkele ry funksies.
- Numeriese funksie (Bv: ABS, SIN, COS)
- Karakterfunksie (Bv: CONCAT, INITCAP)
- Datum-tydfunksie (Bv.: LAST_DAY, NEXT_DAY)
- Omskakelingsfunksies (Bv: TO_CHAR, TO_DATE)
- Versamelingsfunksie (Bv: CARDINALITY, SET)
- Aggregeerde funksies (Lewer 'n enkele ry terug, gebaseer op 'n groep rye. Bv: AVG, SUM, MAX)
- Analitiese funksies
- Voorwerpverwysingsfunksies
- Modelfunksies
- Gebruikergedefinieerde funksies
Wat is die verskil tussen funksie en gestoorde prosedure?
• Alle funksies moet 'n waarde terugstuur deur RETURN-stelling te gebruik. Gestoorde prosedures gee nie waardes met RETURN-stelling terug nie. RETURN-stelling binne 'n prosedure sal sy beheer na die oproepprogram teruggee. OUT-parameters kan gebruik word om waardes van gestoorde prosedures terug te gee.
• Funksies kan binne die navrae geroep word, maar gestoorde prosedures kan nie binne die navrae gebruik word nie.
• RETURN-datatipe moet ingesluit word om 'n funksie te skep, maar in gestoorde prosedure DDL is dit nie.