Különbség a tárolt eljárás és a funkció között

Tartalomjegyzék:

Különbség a tárolt eljárás és a funkció között
Különbség a tárolt eljárás és a funkció között

Videó: Különbség a tárolt eljárás és a funkció között

Videó: Különbség a tárolt eljárás és a funkció között
Videó: What is Centripetal force? 2024, November
Anonim

Tárolt eljárás kontra funkció

A tárolt eljárások és függvények kétféle programozási blokk. Mindkettőnek hívóneve kell lennie. Ezeket a hívó neveket egy másik programozási blokkon belül hívják meg, például eljárások függvények és csomagok vagy SQL lekérdezések. Mindkét objektumtípus elfogad paramétereket, és végrehajtja az objektumok mögötti feladatot. Ez a szintaxis (ORACLE-ban) egy tárolt eljárás létrehozásához, eljárás létrehozása vagy cseréje eljárásnév (paraméterek)

mint

begin

nyilatkozatok;

kivétel

exception_handling

vége;

És itt van a függvény létrehozásának szintaxisa (ORACLE-ben), függvény létrehozása vagy cseréje függvény_neve (paraméterek)

return return_datatype

mint

begin

nyilatkozatok;

return return_value/variable;

kivétel;

exception_handling;

vége;

Tárolt eljárások

Amint fentebb említettük, a tárolt eljárásokat programozási blokkoknak nevezzük. Elfogadják a paramétereket felhasználói bemenetként, és az eljárás mögötti logika szerint feldolgozzák, és megadják az eredményt (vagy végrehajtanak egy adott műveletet). Ezek a paraméterek IN, OUT és INOUT típusúak lehetnek. Változódeklarációk, változó-hozzárendelések, vezérlőutasítások, ciklusok, SQL-lekérdezések és egyéb függvények/eljárás-/csomaghívások lehetnek az eljárások törzsében.

Funkciók

A függvényeket programozási blokknak is nevezzük, amelyeknek RETURN utasítással kell értéket visszaadniuk, és mielőtt értéket adna vissza, a törzse is végrehajt bizonyos műveleteket (az adott logika szerint). A függvények paramétereket is elfogadnak a futtatáshoz. A függvények a lekérdezéseken belül hívhatók meg. Ha egy függvényt egy SELECT lekérdezésben hívunk meg, az a SELECT lekérdezés eredménykészletének minden sorára vonatkozik. Az ORACLE függvényeknek több kategóriája van. Ők:

Egysoros függvények (egyetlen eredményt ad vissza a lekérdezés minden sorához)

Az egysoros függvényeknek vannak alkategóriái.

  • Numerikus függvény (pl.: ABS, SIN, COS)
  • Karakterfüggvény (pl.: CONCAT, INITCAP)
  • Dátum és idő függvény (pl.: LAST_DAY, NEXT_DAY)
  • Konverziós függvények (pl.: TO_CHAR, TO_DATE)
  • Gyűjtési funkció (pl.: CARDINALITY, SET)
  • Aggregált függvények (Egy sort ad vissza, sorok csoportja alapján. Pl.: AVG, SUM, MAX)
  • Analitikai függvények
  • Objektumreferencia függvények
  • Modellfunkciók
  • Felhasználó által meghatározott funkciók

Mi a különbség a függvény és a tárolt eljárás között?

• Minden függvénynek értéket kell visszaadnia a RETURN utasítás használatával. A tárolt eljárások nem adnak vissza értékeket a RETURN utasítás használatával. Az eljáráson belüli RETURN utasítás visszaadja a vezérlést a hívó programnak. Az OUT paraméterek használhatók a tárolt eljárások értékeinek visszaadására.

• A függvények meghívhatók a lekérdezéseken belül, de a tárolt eljárások nem használhatók a lekérdezéseken belül.

• A RETURN adattípust szerepeltetni kell egy függvény létrehozásához, de a DDL tárolt eljárásban nem.

Ajánlott: