Het verschil is- Een functie moet een waarde (van elk type) retourneren als standaarddefinitie ervan, terwijl u in het geval van een procedure parameters zoals OUT
moet gebruiken of IN OUT
parameters om de resultaten te krijgen. U kunt een functie gebruiken in een normale SQL
waarbij je geen procedure kunt gebruiken in SQL
verklaringen.
Enkele verschillen tussen functies en procedures
-
Een functie retourneert altijd een waarde met behulp van de return-instructie, terwijl een procedure een of meer waarden kan retourneren via parameters of helemaal niet retourneert. Hoewel,
OUT
parameters kunnen nog steeds in functies worden gebruikt, ze zijn niet aan te raden, en er zijn ook geen gevallen waarin dit nodig zou kunnen zijn.OUT
gebruiken parameter beperkt het gebruik van een functie in een SQL-instructie. -
Functies kunnen worden gebruikt in typische SQL-instructies zoals
SELECT
,INSERT
,UPDATE
,DELETE
,MERGE
, terwijl procedures dat niet kunnen. -
Functies worden normaal gesproken gebruikt voor berekeningen, terwijl procedures normaal worden gebruikt voor het uitvoeren van bedrijfslogica.
-
Oracle biedt de mogelijkheid om "functiegebaseerde indexen" te maken om de prestaties van de daaropvolgende SQL-instructie te verbeteren. Dit is van toepassing bij het uitvoeren van de functie op een geïndexeerde kolom in de where-clausule van een query.
Meer informatie over functies vs. Procedures hier en hier.