For enhver, der nogensinde har studeret programmeringssprog som C, C++ eller Java, er begrebet funktioner ikke nyt. Funktioner er intet andet end en gruppe af eksekverbare udsagn. Ved at bruge funktioner kan du spare dig selv for at omskrive den samme programmeringslogik igen og igen. Så hvordan kan vi definere en funktion i Oracle PL/SQL?
Hvad er PL/SQL-funktioner i Oracle Database?
I Oracle Database kan vi definere en PL/SQL-funktion som et selvstændigt underprogram, der er beregnet til at udføre en specifik veldefineret opgave. Funktioner kaldes PL/SQL-blok, hvilket betyder, at de kan gemmes i databasen som et databaseobjekt og kan genbruges. Det er også grunden til, at nogle bøger omtaler PL/SQL-funktioner som lagrede funktioner.
Typer af PL/SQL-funktioner i Oracle-databasen
Der er to typer PL/SQL-funktioner i Oracle Database, disse er
- Forbigå-værdi-funktioner og
- Gennemgå-funktioner
I Oracle Database skal begge typer funktioner returnere nogle værdier, og disse værdier skal være en gyldig SQL- eller PL/SQL-datatype.
Syntaks for PL/SQL-funktioner i Oracle-databasen
CREATE [OR REPLACE] FUNCTION function_name (Parameter 1, Parameter 2…) RETURN datatype IS Declare variable, constant etc. BEGIN Executable Statements Return (Return Value); END;
Jeg har diskuteret PL/SQL-funktionens syntaks linje for linje i videovejledningen på min YouTube-kanal om samme emne. Jeg foreslår, at du går og tjekker den tutorial én gang.
Funktionsudførelsesmetode
Afhængigt af din kreativitet og dine programmeringsevner kan en PL/SQL-funktion kaldes på flere måder. Her er nogle generelle måder at kalde en PL/SQL-funktion i Oracle Database
- Du kan bruge SQL*Plus-værktøjet i Oracle-databasen til at fremkalde en PL/SQL-funktion, der kan kaldes fra PL/SQL som proceduresætning.
- En anonym PL/SQL-blok kan også bruges til at kalde en funktion.
- Du kan endda kalde en funktion direkte ind i en SELECT- eller DML-sætning.
Hold dig opdateret, vi vil diskutere hver af disse udførelsesmetoder for PL/SQL-funktioner i næste selvstudie.
Begrænsninger for at kalde en funktion
- En funktion, der returnerer SQL-datatype, kan bruges i SQL-sætningen, og en PL/SQL-funktion, der returnerer PL/SQL-datatype, fungerer kun i PL/SQL-blokke. En undtagelse fra denne regel er, at du ikke kan kalde en funktion, der indeholder en DML-handling inde i en SQL-forespørgsel. Du kan dog kalde en funktion, der udfører en DML-handling inde i INSERT, UPDATE og DELETE.
- En funktion kaldet fra en UPDATE- eller DELETE-sætning på en tabel kan ikke forespørge (SELECT) eller udføre transaktioner (DML'er) på den samme tabel.
- En funktion kaldet fra SQL-udtryk kan ikke indeholde kommandoen TCL (COMMIT eller ROLLBACK) eller kommandoen DDL (CREATE eller ALTER)
Det var det for denne tutorial om introduktion til PL/SQL-funktioner i Oracle-databasen. Sørg for at tjekke den næste tutorial, hvor jeg demonstrerer oprettelsen af PL/SQL-funktion ved hjælp af et meget simpelt eksempel.
Sørg også for at dele denne blog på dine sociale medier, da jeg udlodder RebellionRiders merchandise til en af de tilfældigt udvalgte vindere hver måned. For yderligere opdateringer følg mig på min Facebook og Twitter.
Tak fordi du læste med og hav en god dag!