Różnica między procedurą przechowywaną a funkcją

Procedura składowana a funkcja
 

Procedury i funkcje przechowywane to dwa rodzaje bloków programowania. Oba muszą mieć dzwoniące nazwiska. Te nazwy wywołujące są używane do wywoływania ich w innym bloku programowania, takim jak funkcje procedur i pakiety lub zapytania SQL. Oba typy obiektów akceptują parametry i wykonują zadanie za tymi obiektami. To jest składnia (w ORACLE), aby utworzyć procedurę składowaną,

 utwórz lub zastąp procedurę nazwa procedury (parametry)

 tak jak

 zaczynać

     sprawozdania;

 wyjątek

     Obsługa wyjątków

 koniec;

A oto składnia do utworzenia funkcji (w ORACLE),

utwórz lub zamień funkcję nazwa_funkcji (parametry)

return return_datatype

tak jak

zaczynać

sprawozdania;

return return_value / zmienna;

wyjątek;

Obsługa wyjątków;

koniec;

Procedury przechowywane

Jak wspomniano powyżej, procedury składowane nazywane są blokami programowania. Akceptują parametry jako dane wejściowe i przetwarzają użytkownika zgodnie z logiką procedury i dają wynik (lub wykonują określone działanie). Te parametry mogą być typu IN, OUT i INOUT. Deklaracje zmiennych, przypisania zmiennych, instrukcje sterujące, pętle, zapytania SQL i inne funkcje / wywołania procedur / pakietów mogą znajdować się w treści procedur.

Funkcje

Funkcje są również nazywane blokami programistycznymi, które muszą zwrócić wartość za pomocą instrukcji RETURN, a zanim zwróci wartość, jej ciało wykonuje również pewne działania (zgodnie z podaną logiką). Funkcje akceptują również parametry do uruchomienia. Funkcje mogą być wywoływane w zapytaniach. Gdy funkcja jest wywoływana w zapytaniu SELECT, ma zastosowanie do każdego wiersza zestawu wyników zapytania SELECT. Istnieje kilka kategorii funkcji ORACLE. Oni są,

  • Funkcje pojedynczego wiersza (zwraca pojedynczy wynik dla każdego wiersza zapytania)

Istnieją podkategorie funkcji jednego wiersza.

  • Funkcja numeryczna (np .: ABS, SIN, COS)
  • Funkcja znakowa (np .: CONCAT, INITCAP)
  • Funkcja daty i godziny (np .: LAST_DAY, NEXT_DAY)
  • Funkcje konwersji (np .: TO_CHAR, TO_DATE)
  • Funkcja zbierania (np .: CARDINALITY, SET)
  • Funkcje agregujące (Zwraca pojedynczy wiersz na podstawie grupy wierszy. Np .: AVG, SUM, MAX)
  • Funkcje analityczne
  • Funkcje odniesienia do obiektu
  • Funkcje modelu
  • Funkcje zdefiniowane przez użytkownika

Jaka jest różnica między funkcją a procedurą składowaną?

• Wszystkie funkcje muszą zwracać wartość za pomocą instrukcji RETURN. Procedury składowane nie zwracają wartości za pomocą instrukcji RETURN. Instrukcja RETURN wewnątrz procedury zwróci kontrolę nad programem wywołującym. Parametry OUT można wykorzystać do zwrócenia wartości z procedur przechowywanych.

• Funkcje mogą być wywoływane wewnątrz zapytań, ale procedur przechowywanych nie można używać wewnątrz zapytań.

• Aby utworzyć funkcję, należy podać typ danych RETURN, ale w procedurze przechowywanej DDL tak nie jest.