Differenza tra stored procedure e funzione

Anonim

Procedura memorizzata e funzione

Le stored procedure e le funzioni sono due tipi di blocchi di programmazione. Entrambe devono avere nomi di chiamata. Questi nomi di chiamata vengono utilizzati per chiamarli all'interno di un altro blocco di programmazione come le funzioni di procedure e i pacchetti o le query SQL. Entrambi questi tipi di oggetti accettano i parametri e eseguono l'attività dietro questi oggetti. Questa è la sintassi (in ORACLE) per creare una stored procedure,

crea o sostituisce la procedura procedurename (parametri)

come

begin

statements;

eccezione

exception_handling

fine;

E qui è la sintassi per creare una funzione (in ORACLE),

Creare o sostituire funzione function_name (parametri)

return return_datatype

come

begin

statement;

return return_value / variabile;

un'eccezione;

exception_handling;

fine;

Procedure memorizzate

Come sopra menzionato, le stored procedure sono denominate blocchi di programmazione. Accettano i parametri come input dell'utente e processo secondo la logica dietro la procedura e dare il risultato (o eseguire un'azione specifica). Questi parametri possono essere tipi IN, OUT e INOUT. Le dichiarazioni variabili, le assegnazioni variabili, le istruzioni di controllo, loop, query SQL e altre funzioni / procedure / pacchetti di pacchetti possono essere all'interno del corpo delle procedure.

Funzioni

Le funzioni sono anche denominate blocchi di programmazione che devono restituire un valore utilizzando l'istruzione RETURN e prima di restituire un valore, il suo corpo esegue anche alcune azioni (secondo la logica data). Le funzioni accettano anche i parametri da eseguire. Le funzioni possono essere chiamate all'interno delle query. Quando una funzione viene chiamata all'interno di una query SELECT, si applica a ciascuna riga del set di risultati della query SELECT. Esistono diverse categorie di funzioni ORACLE. Essi sono,

Funzioni a riga singola (restituisce un singolo risultato per ogni riga della query)

  • Esistono sotto categorie di singole funzioni di riga.

Funzione di conversione (es: TO_CHAR, TO_DATE)

  • Funzione di conversione (Es: ABS, SIN, COS)
  • Funzione di caratteri (Ex: CONCAT, INITCAP)
  • )
  • Funzione di raccolta (Es: CARDINALITY, SET)
  • Funzioni di aggregazione (Restituisce una singola riga, basata su un gruppo di righe Es: AVG, SUM, MAX)
  • Funzioni analitiche
  • Funzioni modello
  • Funzioni definite dall'utente
  • Qual è la differenza tra la funzione e la stored procedure?

• Tutte le funzioni devono restituire un valore utilizzando l'istruzione RETURN. Le procedure memorizzate non restituiscono i valori con l'istruzione RETURN. L'istruzione RETURN all'interno di una procedura restituirà il suo controllo al programma di chiamata. I parametri OUT possono essere utilizzati per restituire i valori dalle procedure memorizzate.

• Le funzioni possono essere chiamate all'interno delle query, ma le procedure memorizzate non possono essere utilizzate all'interno delle query.

• È necessario includere il tipo di dati RETURN per creare una funzione, ma nella stored procedure DDL non lo è.