Erinevus salvestatud protseduuri ja funktsiooni vahel

Sisukord:

Erinevus salvestatud protseduuri ja funktsiooni vahel
Erinevus salvestatud protseduuri ja funktsiooni vahel

Video: Erinevus salvestatud protseduuri ja funktsiooni vahel

Video: Erinevus salvestatud protseduuri ja funktsiooni vahel
Video: Katse 2: Gravitatsiooni jõud veega 2024, November
Anonim

Salvestatud protseduur vs funktsioon

Salvestatud protseduurid ja funktsioonid on kahte tüüpi programmeerimisplokke. Mõlemal peab olema kutsuv nimi. Neid kutsuvaid nimesid kasutatakse nende kutsumiseks mõnes teises programmeerimisplokis, nagu protseduuride funktsioonid ja paketid või SQL-päringud. Mõlemad objektitüübid aktsepteerivad parameetreid ja täidavad nende objektide taga olevaid ülesandeid. See on süntaks (ORACLE'is) salvestatud protseduuri loomiseks

loo või asenda protseduuri protseduurinimi (parameetrid)

as

alusta

avaldused;

erand

erandi_käsitlemine

lõpp;

Ja siin on süntaks funktsiooni loomiseks (ORACLE'is), loo või asenda funktsiooni funktsiooni_nimi (parameetrid)

return return_datatype

as

alusta

avaldused;

return return_value/muutuja;

erand;

exception_handling;

lõpp;

Salvestatud protseduurid

Nagu eespool mainitud, nimetatakse salvestatud protseduure programmeerimisplokkideks. Nad aktsepteerivad parameetreid kasutaja sisendiks ja töötlevad vastav alt protseduuri taga olevale loogikale ning annavad tulemuse (või sooritavad konkreetse toimingu). Need parameetrid võivad olla IN, OUT ja INOUT tüüpi. Muutujate deklaratsioonid, muutujate määramised, juhtlaused, tsüklid, SQL-päringud ja muud funktsioonid/protseduuri-/paketikutsed võivad olla protseduuride korpuses.

Funktsioonid

Funktsioone nimetatakse ka programmeerimisplokkideks, mis peavad tagastama väärtuse RETURN-lause abil ja enne väärtuse tagastamist sooritab ka selle keha teatud toimingud (vastav alt etteantud loogikale). Funktsioonid aktsepteerivad käivitamiseks ka parameetreid. Funktsioone saab kutsuda päringu sees. Kui funktsiooni kutsutakse SELECT päringu sees, rakendub see SELECT päringu tulemuskomplekti igale reale. ORACLE'i funktsioone on mitu kategooriat. Need on

Üherea funktsioonid (tagastab päringu iga rea kohta ühe tulemuse)

Üherea funktsioonidel on alamkategooriad.

  • Numbriline funktsioon (nt: ABS, SIN, COS)
  • Tähemärgi funktsioon (nt: CONCAT, INITCAP)
  • Kuupäeva ja kellaaja funktsioon (nt: LAST_DAY, NEXT_DAY)
  • Teisendusfunktsioonid (nt: TO_CHAR, TO_DATE)
  • Kogumisfunktsioon (nt: KARDINALSUS, SET)
  • Koondfunktsioonid (Tagastab ühe rea, mis põhineb ridade rühmal. Nt: AVG, SUM, MAX)
  • Analüütilised funktsioonid
  • Objekti viitefunktsioonid
  • Mudeli funktsioonid
  • Kasutaja määratletud funktsioonid

Mis vahe on funktsioonil ja salvestatud protseduuril?

• Kõik funktsioonid peavad tagastama väärtuse RETURN-lause abil. Salvestatud protseduurid ei tagasta RETURN-lause abil väärtusi. RETURN-lause protseduuri sees tagastab selle juhtimise kutsuvale programmile. OUT parameetreid saab kasutada väärtuste tagastamiseks salvestatud protseduuridest.

• Funktsioone saab kutsuda päringu sees, kuid päringute sees ei saa kasutada salvestatud protseduure.

• Funktsiooni loomiseks tuleb lisada andmetüüp RETURN, kuid salvestatud protseduuris DDL seda ei ole.

Soovitan: