Postupy vs funkce v programování
Procedury a funkce v programování umožňují programátorům seskupovat instrukce do jednoho bloku a lze je volat z různých míst v rámci programu. Kód je srozumitelnější a kompaktnější. Provedením úprav na jednom místě bude ovlivněn celý kód. S pomocí funkcí a postupů; lineární a dlouhý kód lze rozdělit do samostatných sekcí. Poskytují větší flexibilitu při kódování různých programovacích jazyků a databází.
Co jsou funkce?
Funkce jsou schopné přijímat parametry, které se také nazývají argumenty. Provádějí úkoly podle těchto argumentů nebo parametrů a vracejí hodnoty daných typů. Můžeme to lépe vysvětlit pomocí příkladu: Funkce přijímá řetězec jako parametr a vrací první záznam nebo záznam z databáze. Zohledňuje obsah konkrétního pole, které začíná takovými znaky.
Syntaxe funkce je následující:
VYTVOŘIT NEBO VYMĚNIT FUNKCI my_func
(p_name IN VARCHAR2: = 'Jack') vrátí varchar2 jako začátek … konec
Jaké jsou postupy?
Procedury mohou přijmout parametry nebo argumenty a provádějí úkoly podle těchto parametrů. Pokud procedura přijme řetězec jako parametr a vydá seznam se záznamy v databázi, pro které obsah konkrétního pole začíná takovými znaky.
Syntaxe postupů je následující:
VYTVOŘIT NEBO VYMĚNIT POSTUP my_proc
(p_name IN VARCHAR2: = 'Jack') jako začátek … konec
Hlavně existují dva způsoby, kterými je parametr předáván ve funkcích a postupech; podle hodnoty nebo podle odkazu. Pokud je parametr předán hodnotou; změna je ovlivněna v rámci funkce nebo postupu, aniž by byla ovlivněna její skutečná hodnota.
Na druhou stranu, pokud jsou parametry předávány odkazy; skutečná hodnota tohoto parametru bude změněna, kdykoli bude vyvolána v rámci kódu podle pokynů.
• Když je parametr předán do procedury; nevrací žádnou hodnotu, zatímco funkce vždy vrací hodnotu. • Jedním z hlavních rozdílů v obou je to, že postupy se nepoužívají v databázích, zatímco funkce hrají důležitou roli při vracení hodnot z databáze. • Procedury jsou schopné vrátit více hodnot a funkce jsou schopné vrátit omezené hodnoty. • Operace DML lze použít v uložených procedurách; ve funkcích však nejsou možné. • Funkce mohou vrátit pouze jednu hodnotu a je to povinné, zatímco procedury mohou vrátit n nebo nulové hodnoty. • Ve funkcích nelze provádět zpracování chyb, ale lze je provádět v uložených procedurách. • Vstupní a výstupní parametry lze předávat v procedurách, zatímco v případě funkcí; lze předat pouze vstupní parametry. • Funkce lze volat z procedur, zatímco není možné volat proceduru z funkce. • Řízení transakcí lze zvažovat v postupech a nelze jej zohlednit v případě funkcí. |