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

Tárolt eljárás vs funkció
 

A tárolt eljárások és funkciók kétféle programozási blokk. Mindkettőnek hívónevekkel kell rendelkeznie. Ezeket a hívóneveket egy másik programozási blokkban hívják fel, például eljárási funkciók és csomagok vagy SQL lekérdezések esetén. Mindkét objektumtípus elfogadja a paramétereket, és elvégzi a feladatot az objektumok mögött. Ez a szintaxis (ORACLE-ban) egy tárolt eljárás létrehozásához,

 hozzon létre vagy cserélje ki az eljárás nevét (paraméterek)

 mint

 kezdődik

     kimutatások;

 kivétel

     exception_handling

 végén;

És itt van a függvény létrehozásának szintaxisa (ORACLE-ban),

Hozzon létre vagy cserélje ki a function_name függvényt (paraméterek)

return return_datatype

mint

kezdődik

kimutatások;

visszatérési_érték / változó;

kivétel;

exception_handling;

végén;

Tárolt eljárások

A fentiek szerint a tárolt eljárásokat programozási blokkoknak nevezték. A paramétereket felhasználói bemenetekként fogadják el, és az eljárás mögött meghúzódó logika szerint feldolgozzák, és eredményt adnak (vagy egy adott műveletet végrehajtanak). 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ás / csomaghívások lehetnek az eljárások keretén belül.

Funkciók

A függvényeket programozási blokkoknak is nevezzük, amelyeknek egy értéket vissza kell adni a RETURN utasítás használatával, és mielőtt egy értéket visszaadnának, a test is végrehajt egy bizonyos műveletet (az adott logika szerint). A függvények elfogadják a futtatandó paramétereket is. A funkciókat a lekérdezések belsejében lehet meghívni. Ha egy funkciót SELECT lekérdezésben hívnak, akkor az a SELECT lekérdezés eredménykészletének minden sorára vonatkozik. Az ORACLE funkcióknak több kategóriája van. Ők,

  • Egysoros funkciók (egyetlen eredményt ad vissza a lekérdezés minden egyes sorára)

Az egysoros funkciók alkategóriái vannak.

  • Numerikus funkció (pl .: ABS, SIN, COS)
  • Karakter funkció (pl .: CONCAT, INITCAP)
  • Dátum és idő funkció (pl .: LAST_DAY, NEXT_DAY)
  • Konverziós függvények (pl .: TO_CHAR, TO_DATE)
  • Gyűjtési funkció (pl .: CARDINALITY, SET)
  • Összesített funkciók (Egy sort ad vissza, sorok csoportja alapján. Pl .: AVG, SUM, MAX)
  • Analitikai funkciók
  • Objektum referencia funkciók
  • Modell funkció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ás használatával. A tárolt eljárások nem adnak vissza értékeket a RETURN utasítás használatával. A RETURN utasítás egy eljáráson belül visszatér irányítását a hívó programhoz. Az OUT paraméterek felhasználhatók az értékek tárolt eljárásokból való visszatérítésére.

• A funkciók meghívhatók a lekérdezések belsejében, de a tárolt eljárások nem használhatók a lekérdezésekben.

• A RETURN adattípust be kell vonni a funkció létrehozásához, de a tárolt DDL eljárásban nem.