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

Anonim

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.