sql >> Database >  >> RDS >> Oracle

Functies versus procedures in Oracle

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

  1. 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.

  2. Functies kunnen worden gebruikt in typische SQL-instructies zoals SELECT , INSERT , UPDATE , DELETE , MERGE , terwijl procedures dat niet kunnen.

  3. Functies worden normaal gesproken gebruikt voor berekeningen, terwijl procedures normaal worden gebruikt voor het uitvoeren van bedrijfslogica.

  4. 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.



  1. Filteren op AANTAL(*)?

  2. Voeg gegevens slechts één keer toe aan de sqlite-database en lees ze meerdere keren

  3. Een string splitsen in PostgreSQL

  4. Een string toewijzen aan een DB-reeks in Hibernate