Procedūros ir funkcijos programuojant
Procedūros ir funkcijos programuojant, leidžia programuotojams sugrupuoti komandas į vieną bloką ir jį galima iškviesti iš įvairių programos vietų. Kodas tampa lengviau suprantamas ir kompaktiškesnis. Atlikus pakeitimus vienoje vietoje, bus paveiktas visas kodas. Funkcijų ir procedūrų pagalba; linijinį ir ilgą kodą galima suskirstyti į nepriklausomas 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 atlieka užduotis pagal šiuos argumentus arba parametrus ir grąžina tam tikrų tipų reikšmes. Tai galime geriau paaiškinti pavyzdžio pagalba: Funkcija priima eilutę kaip parametrą ir grąžina pirmąjį įrašą arba įrašą iš duomenų bazės. Atsižvelgiama į konkretaus lauko, kuris prasideda tokiais simboliais, turinį.
Funkcijos sintaksė yra tokia:
Sukurti ARBA PAKEISTI FUNKCIJĄ my_func
(p_name IN VARCHAR2:=‘Jack’) grąžina varchar2 kaip pradžia … pabaiga
Kas yra procedūros?
Procedūros gali priimti parametrus arba argumentus ir atlieka užduotis pagal šiuos parametrus. Jei procedūra priima eilutę kaip parametrą ir pateikia sąrašą su duomenų bazės įrašais, kurių konkretaus lauko turinys prasideda tokiais simboliais.
Procedūrų sintaksė yra tokia:
SUKURTI ARBA PAKEISTI PROCEDŪRĄ my_proc
(p_name IN VARCHAR2:=‘Jack’) kaip pradžia … pabaiga
Daugiausia yra du būdai, kuriais parametras perduodamas funkcijose ir procedūrose; pagal vertę arba pagal nuorodą. Jei parametrą perduoda reikšmė; modifikacija paveikiama funkcijoje arba procedūroje, nepažeidžiant tikrosios jos vertės.
Kita vertus, jei parametrai perduodami nuorodomis; tikroji šio parametro reikšmė bus pakeista visur, kur jis bus iškviestas kode, kaip nurodyta instrukcijoje.
Procedūrų ir funkcijų skirtumas
• Kai parametras perduodamas į procedūrą; ji nepateikia jokios reikšmės, o funkcija visada grąžina reikšmę.
• Vienas iš pagrindinių skirtumų tarp jų yra tai, kad duomenų bazėse nenaudojamos procedūros, o funkcijos atlieka svarbų vaidmenį grąžinant reikšmes iš duomenų bazės.
• Procedūros gali grąžinti kelias reikšmes, o funkcijos gali grąžinti ribotas reikšmes.
• DML operacijos gali būti naudojamos saugomose procedūrose; tačiau funkcijose jos neįmanomos.
• Funkcijos gali grąžinti tik vieną reikšmę ir tai yra privaloma, o procedūros gali grąžinti n arba nulį reikšmių.
• Funkcijose klaidų tvarkyti negalima, tuo tarpu tai galima atlikti naudojant išsaugotas procedūras.
• Įvesties ir išvesties parametrus galima perduoti procedūromis, tuo tarpu funkcijų atveju; galima perduoti tik įvesties parametrus.
• Funkcijos gali būti iškviečiamos iš procedūrų, tuo tarpu procedūros iš funkcijos iškviesti neįmanoma.
• Operacijų valdymas gali būti svarstomas procedūromis, o ne funkcijų atveju.