Különbség a tárolt eljárás és a funkció között
Tárolt eljárás és függvény
A tárolt eljárások és funkciók kétféle programozási blokk. Mindkettőnek hívó nevük van. Ezeket a hívó neveket úgy hívják, hogy egy másik programblokkon belül hívják őket, mint például az eljárásokfunkciók és a csomagok vagy az SQL lekérdezések. Mindkét objektumtípus elfogadja a paramétereket, és elvégzi a feladatot az objektumok mögött. Ez a szintaxis (ORACLE) egy tárolt eljárás létrehozásához,
-1 ->létrehozza vagy kicseréli az eljárás eljárási nevét (paraméterek)
begin
utasításokként;
, kivéve
exception_handling
végén;
És itt van a szintaxis létrehozni egy függvényt (ORACLE),
funkció létrehozása vagy cseréje function_name (paraméterek)
returns return_datatype
mint
begin
utasítások;
hozam return_value / variable;
kivételével;
exception_handling;
végén;
Tárolt eljárások
A fentiek szerint a tárolt eljárásokat programozási blokkoknak nevezzük. A paramétereket felhasználó bevitelként és folyamatként fogadják el az eljárás mögötti logika alapján, és megadják az eredményt (vagy végeznek el egy meghatározott műveletet). Ezek a paraméterek lehetnek IN, OUT és INOUT típusok. Változó deklarációk, változó hozzárendelések, vezérlő utasítások, hurkok, SQL lekérdezések és egyéb funkciók / eljárások / csomaghívások lehetnek az eljárások testében.
Funkciók
A funkciók programozási blokknak is nevezhetők, amelyeknek vissza kell adniuk egy értéket a RETURN utasítással, és mielőtt értéket adna vissza, a test végrehajt néhány műveletet is (az adott logikának megfelelően). A funkciók elfogadják a futtatni kívánt paramétereket is. A lekérdezésekben funkciók hívhatók. Ha egy függvény egy SELECT lekérdezésben kerül hívásra, akkor a SELECT lekérdezés eredménykészletének minden sorára vonatkozik. Az ORACLE funkciók több kategóriája létezik. Ezek
- Egysoros függvények (egyetlen eredményt ad a lekérés minden egyes sorához)
Egy soros függvény al kategóriái vannak.
- Dátumidő funkció (Ex: LAST_DAY, NEXT_DAY)
- Konverziós funkciók (például: TO_CHAR, TO_DATE
- szám funkció (pl.: ABS, SIN, COS)
- )
- Gyűjtési funkció (Ex: CARDINALITY, SET)
- Aggregációs függvények (egy sor sorát adja vissza, sorok csoportja alapján) Példa: AVG, SUM, MAX
- Analitikai funkciók
- Modellfunkciók
- Felhasználó által definiált funkciók
Mi a különbség a funkció és a tárolt eljárás között? • Minden funkciónak vissza kell adnia egy értéket a RETURN utasítással. A tárolt eljárások nem adják vissza az értékeket a RETURN utasítással. Az eljárás belsejében lévő RETURN utasítás visszaadja a vezérlést a hívó programnak. Az OUT paraméterek felhasználhatók a tárolt eljárásokból származó értékek visszaküldésére. • A lekérdezésekben funkciók hívhatók, de a tárolt eljárások nem használhatók a lekérdezésekben. • A RETURN típusú adattípusnak tartalmaznia kell egy funkció létrehozását, de a DDL tárolt eljárásban nem. |