sql >> Databasteknik >  >> RDS >> Oracle

Introduktion till PL/SQL-funktioner i Oracle Database

För alla som någonsin har studerat programmeringsspråk som C, C++ eller Java är konceptet med funktioner inte nytt. Funktioner är inget annat än en grupp av körbara satser. Genom att använda funktioner kan du rädda dig själv från att skriva om samma programmeringslogik om och om igen. Så hur kan vi definiera en funktion i Oracle PL/SQL?

Vad är PL/SQL-funktioner i Oracle Database?

I Oracle Database kan vi definiera en PL/SQL-funktion som ett fristående underprogram som är avsett att utföra någon specifik väldefinierad uppgift. Funktioner kallas PL/SQL-block vilket innebär att de kan lagras i databasen som ett databasobjekt och kan återanvändas. Det är också anledningen till att vissa böcker hänvisar till PL/SQL-funktioner som lagrade funktioner.

Typer av PL/SQL-funktioner i Oracle Database

Det finns två typer av PL/SQL-funktioner i Oracle Database, dessa är

  1. Funktioner för förbi-värde och
  2. Funktioner för att gå förbi

I Oracle Database bör båda typerna av funktioner behöva returnera vissa värden och dessa värden bör vara en giltig SQL- eller PL/SQL-datatyp.

Syntax för PL/SQL-funktioner i Oracle Database

CREATE [OR REPLACE] FUNCTION function_name
(Parameter 1, Parameter 2…)
RETURN datatype
IS
	Declare variable, constant etc.  
BEGIN
	Executable Statements
	Return (Return Value);
END;

Jag har diskuterat PL/SQL-funktionens syntax rad för rad i videohandledningen på min YouTube-kanal om samma ämne. Jag föreslår att du går och kollar in den självstudien en gång.

Funktionskörningsmetod

Beroende på din kreativitet och programmeringsförmåga kan en PL/SQL-funktion anropas på flera sätt. Här är några allmänna sätt att anropa en PL/SQL-funktion i Oracle Database

  1. Du kan använda verktyget SQL*Plus i Oracle-databasen för att anropa en PL/SQL-funktion som kan anropas från PL/SQL som en procedursats.
  2. Ett anonymt PL/SQL-block kan också användas för att anropa en funktion.
  3. Du kan till och med anropa en funktion direkt till en SELECT- eller DML-sats.

Håll utkik, vi kommer att diskutera var och en av dessa exekveringsmetoder för PL/SQL-funktioner i nästa handledning.

Begränsningar för att anropa en funktion

  1. En funktion som returnerar SQL-datatyp kan användas i SQL-satsen och en PL/SQL-funktion som returnerar PL/SQL-datatyp fungerar endast i PL/SQL-block. Ett undantag från denna regel är att du inte kan anropa en funktion som innehåller en DML-operation i en SQL-fråga. Du kan dock anropa en funktion som utför en DML-operation i INSERT, UPDATE och DELETE.
  2. En funktion som anropas från en UPDATE- eller DELETE-sats i en tabell kan inte fråga (SELECT) eller utföra transaktioner (DML) på samma tabell.
  3. En funktion som anropas från SQL-uttryck kan inte innehålla kommandot TCL (COMMIT eller ROLLBACK) eller kommandot DDL (CREATE eller ALTER)

Det var allt för den här handledningen om Introduktion till PL/SQL-funktioner i Oracle Database. Se till att kolla in nästa handledning där jag visar skapandet av PL/SQL-funktioner med ett mycket enkelt exempel.

Se också till att dela den här bloggen på dina sociala medier eftersom jag ger bort RebellionRiders varor till en av de slumpmässigt utvalda vinnarna varje månad. För ytterligare uppdateringar följ mig på min Facebook och Twitter.

Tack för att du läste och ha en bra dag!


  1. Hur extraherar man år och månad från datum i PostgreSQL utan att använda to_char()-funktionen?

  2. Returnera icke-numeriska värden från en PostgreSQL-databaskolumn

  3. SQL:Få poster skapade inom tidsintervall för specifika datum

  4. Hur BIT_LENGTH() fungerar i MariaDB