Razlika između pohranjenog postupka i funkcije

Pohranjeni postupak prema funkciji
 

Pohranjeni postupci i funkcije dvije su vrste programskih blokova. Oboje moraju imati pozivna imena. Ta nazivna imena koriste se za pozivanje unutar drugog programskog bloka poput funkcija procedura i paketa ili SQL upita. Obje ove vrste objekata prihvaćaju parametre i izvršavaju zadatak iza tih objekata. Ovo je sintaksa (u ORACLE) za stvaranje pohranjene procedure,

 stvoriti ili zamijeniti naziv procedure postupka (parametri)

 kao

 početi

     izjave;

 izuzetak

     exception_handling

 kraj;

A ovdje je sintaksa za stvaranje funkcije (u ORACLE),

kreiranje ili zamjena funkcije function_name (parametri)

return return_datatype

kao

početi

izjave;

return return_value / varijabla;

izuzetak;

exception_handling;

kraj;

Pohranjeni postupci

Kao što je gore spomenuto pohranjeni postupci nazivaju se programski blokovi. Oni prihvaćaju parametre kao korisnički unos i obradu u skladu s logikom koja stoji iza postupka i daju rezultat (ili obavljaju određenu radnju). Ovi parametri mogu biti IN, OUT i INOUT tipovi. Deklaracije varijable, dodjela varijabli, kontrolni izrazi, petlje, SQL upiti i ostale funkcije / postupak / paketni pozivi mogu se nalaziti unutar tijela procedura.

funkcije

Funkcije se nazivaju i programskim blokovima koji moraju vratiti vrijednost pomoću RETURN izraza, a prije nego što vrati vrijednost, tijelo također izvršava neke radnje (prema zadanoj logici). Funkcije također prihvaćaju parametre za pokretanje. Funkcije se mogu pozvati unutar upita. Kada se funkcija zove unutar SELECT upita, ona se primjenjuje na svaki red rezultata skupa upita SELECT. Postoji nekoliko kategorija ORACLE funkcija. Oni su,

  • Funkcije pojedinačnog retka (vraća jedan rezultat za svaki red upita)

Postoje potkategorije funkcija s jednim redom.

  • Numerička funkcija (Primjer: ABS, SIN, COS)
  • Znakovna funkcija (Na primjer: CONCAT, INITCAP)
  • Funkcija vremena (npr .: LAST_DAY, NEXT_DAY)
  • Funkcije pretvorbe (Na primjer: TO_CHAR, TO_DATE)
  • Funkcija prikupljanja (Na primjer: KARDINALNOST, SET)
  • Funkcije združivanja (vraća jedan red na temelju grupe redova. Npr. AVG, SUM, MAX)
  • Analitičke funkcije
  • Referentne funkcije objekta
  • Funkcije modela
  • Korisnički definirane funkcije

Koja je razlika između funkcije i pohranjenog postupka?

• Sve funkcije moraju vratiti vrijednost koristeći RETURN izraz. Pohranjeni postupci ne vraćaju vrijednosti pomoću RETURN izraza. Izjava RETURN unutar postupka vratit će svoju kontrolu pozivnom programu. OUT parametri se mogu koristiti za vraćanje vrijednosti iz pohranjenih procedura.

• Funkcije se mogu pozvati unutar upita, ali pohranjeni postupci se ne mogu koristiti unutar upita.

• RETURN vrsta podataka mora biti uključena da bi se stvorila funkcija, ali u pohranjenoj proceduri DDL to nije.