Programavimo procedūrų ir funkcijų skirtumas

Programavimo procedūros ir funkcijos

Programavimo procedūros ir funkcijos leidžia programuotojams sugrupuoti instrukcijas į vieną bloką ir jis gali būti iškviečiamas iš įvairių programos vietų. Kodas tampa lengviau suprantamas ir kompaktiškesnis. Atlikdami pakeitimus vienoje vietoje, turės įtakos visas kodas. Pasitelkiant funkcijas ir procedūras; linijinį ir ilgąjį kodus galima suskirstyti į atskiras dalis. Jie suteikia daugiau lankstumo koduojant įvairias programavimo kalbas ir duomenų bazes.

Kas yra funkcijos?

Funkcijos gali priimti parametrus, kurie taip pat žinomi kaip argumentai. Jie vykdo užduotis pagal šiuos argumentus ar parametrus bei grąžina nurodytų tipų reikšmes. Tai galime geriau paaiškinti naudodamiesi pavyzdžiu: Funkcija priima eilutę kaip parametrą ir grąžina pirmąjį įrašą ar įrašą iš duomenų bazės. Čia atsižvelgiama į konkretaus lauko, prasidedančio tokiais simboliais, turinį.

Funkcijos sintaksė yra tokia:

Sukurti ar pakeisti funkciją „my_func“

(„p_name IN VARCHAR2“: = „Džekas“) grąžina varchar2 kaip prasideda… pabaiga

Kas yra procedūros?

Procedūros gali priimti parametrus ar argumentus ir vykdo užduotis pagal šiuos parametrus. Jei procedūra priima eilutę kaip parametrą ir ji pateikia sąrašą su įrašais duomenų bazėje, kurių konkretaus lauko turinys prasideda tokiais simboliais.

Procedūrų sintaksė yra tokia:

KŪRIMO ARBA KEITIMO PROCEDŪRA my_proc

(„p_name IN VARCHAR2“: = „Džekas“) kaip pradžios… pabaiga

Paprastai yra du būdai, kuriais parametras perduodamas funkcijose ir procedūrose; pagal vertę arba pagal nuorodą. Jei parametras yra perduotas reikšme; modifikacija turi įtakos funkcijai ar procedūrai, nedarant įtakos faktinei jos vertei.

Kita vertus, jei parametrai perduodami nuorodomis; tikroji šio parametro vertė bus pakeista visur, kur ji vadinama kodu, kaip nurodyta instrukcijose.

Skirtumas tarp procedūrų ir funkcijų

• kai parametras perduodamas procedūrai; jis negrąžina jokios vertės, tuo tarpu funkcija visada grąžina reikšmę.

• Vienas iš pagrindinių abiejų skirtumų yra tas, kad duomenų bazėse nenaudojamos procedūros, tuo tarpu funkcijos vaidina svarbų vaidmenį atkuriant reikšmes iš duomenų bazės.

• Procedūros gali grąžinti kelias vertes, o funkcijos gali grąžinti ribotas reikšmes.

• DML operacijas galima naudoti saugomose procedūrose; tačiau jų neįmanoma atlikti pagal funkcijas.

• Funkcijos gali grąžinti tik vieną reikšmę ir yra privalomos, tuo tarpu procedūros gali grąžinti n arba nulinę reikšmę.

• Funkcijose negalima tvarkyti klaidų, tuo tarpu saugomomis procedūromis.

• įvesties ir išvesties parametrus galima perduoti procedūromis, tuo tarpu funkcijų atveju; gali būti perduoti tik įvesties parametrai.

• Funkcijos gali būti iškviečiamos iš procedūrų, tuo tarpu neįmanoma iškviesti procedūros iš funkcijos.

• Operacijų valdymas gali būti svarstomas vykdant procedūras, o į funkcijas - ne.