Oracle
 sql >> Database >  >> RDS >> Oracle

Funzioni vs procedure in Oracle

La differenza è:una funzione deve restituire un valore (di qualsiasi tipo) per definizione predefinita, mentre nel caso di una procedura è necessario utilizzare parametri come OUT o IN OUT parametri per ottenere i risultati. Puoi usare una funzione in un normale SQL dove non puoi usare una procedura in SQL dichiarazioni.

Alcune differenze tra funzioni e procedure

  1. Una funzione restituisce sempre un valore utilizzando l'istruzione return mentre una procedura può restituire uno o più valori tramite parametri o non restituire affatto. Tuttavia, OUT i parametri possono ancora essere utilizzati nelle funzioni, non sono consigliabili né ci sono casi in cui si potrebbe trovare la necessità di farlo. Usando OUT parametro limita l'utilizzo di una funzione in un'istruzione SQL.

  2. Le funzioni possono essere utilizzate nelle tipiche istruzioni SQL come SELECT , INSERT , UPDATE , DELETE , MERGE , mentre le procedure non possono.

  3. Le funzioni vengono normalmente utilizzate per i calcoli mentre le procedure vengono normalmente utilizzate per l'esecuzione della logica aziendale.

  4. Oracle fornisce la possibilità di creare "indici basati su funzioni" per migliorare le prestazioni della successiva istruzione SQL. Ciò si applica quando si esegue la funzione su una colonna indicizzata nella clausola where di una query.

Maggiori informazioni sulle funzioni vs. Procedure qui e qui.