sql >> Databasteknik >  >> RDS >> Oracle

Funktioner kontra procedurer i Oracle

Skillnaden är- En funktion måste returnera ett värde (av vilken typ som helst) som standarddefinition av den, medan i fallet med en procedur måste du använda parametrar som OUT eller IN OUT parametrar för att få resultatet. Du kan använda en funktion i en vanlig SQL där du inte kan använda en procedur i SQL uttalanden.

Vissa skillnader mellan funktioner och procedurer

  1. En funktion returnerar alltid ett värde med return-satsen medan en procedur kan returnera ett eller flera värden genom parametrar eller kanske inte returnerar alls. Även om OUT parametrar kan fortfarande användas i funktioner, de är inte tillrådliga och det finns inte heller fall där man kan hitta ett behov av att göra det. Använder OUT parametern begränsar en funktion från att användas i en SQL-sats.

  2. Funktioner kan användas i typiska SQL-satser som SELECT , INSERT , UPDATE , DELETE , MERGE , medan procedurer inte kan.

  3. Funktioner används normalt för beräkningar där procedurer normalt används för att utföra affärslogik.

  4. Oracle tillhandahåller möjligheten att skapa "funktionsbaserade index" för att förbättra prestandan för den efterföljande SQL-satsen. Detta gäller när du utför funktionen på en indexerad kolumn i where-satsen i en fråga.

Mer information om funktioner vs. Rutiner här och här.



  1. Överför array till en SQL Server Stored Procedur

  2. Hur övervakar jag SQL Server-tabelländringar med c#?

  3. Hur expanderar jag kommaseparerade värden till separata rader med SQL Server 2005?

  4. Halloweenproblemet – del 3