sql >> Database >  >> RDS >> Oracle

Hoe maak je een PL/SQL-functie in Oracle Database?

Dus nu we in de vorige PL/SQL-zelfstudie al hebben geleerd wat PL/SQL-functies zijn in Oracle Database, laten we een sprong vooruit maken en leren hoe we een PL/SQL-functie kunnen maken aan de hand van een heel eenvoudig voorbeeld.

Deze tutorial vereist een goede kennis van de syntaxis van PL/SQL-functies, dus ik raad je aan om eerst de vorige tutorial te bekijken. Dat gezegd hebbende, laten we deze tutorial beginnen.

Om deze tutorial eenvoudig en gemakkelijk te begrijpen te houden, zullen we een zeer eenvoudige functie maken die de oppervlakte van een cirkel berekent. Ik denk dat dat het doel zal dienen en u zal helpen bij het leren maken van PL/SQL-functies in Oracle Database.

Zoals besproken in de vorige tutorial dat de functie-body in twee delen is verdeeld

  • Eerst is de header van de PL/SQL-functie en
  • Ten tweede is het uitvoeringsgedeelte van de PL/SQL-functie

Dus laten we beginnen met de header van onze functie.

Stap 1. Maak de koptekst van een PL/SQL-functie.

De header bestaat uit de handtekening van de functie of de verklaring van de PL/SQL-functie.

--Function Header
CREATE OR REPLACE FUNCTION circle_area (radius NUMBER) 
RETURN NUMBER IS

Stap 2. Declareer variabelen of de constante.

Als uw programma vereist dat u een variabele of constante of wat dan ook declareert, kunt u dit direct doen nadat u de header hebt gemaakt, ook zonder het trefwoord DECLARE te gebruiken.

--Declare a constant and a variable
pi  	CONSTANT NUMBER(7,2) :=	3.141;
area 	NUMBER(7,2);

Stap 3. Maak het uitvoeringsgedeelte van de PL/SQL-functie.

Als je eenmaal de header van je functie hebt gemaakt en al je benodigde variabelen en constanten hebt gedeclareerd, ben je helemaal klaar om het uitvoeringsgedeelte van je PL/SQL-functie te maken. Hier in de uitvoeringssectie van een PL/SQL-functie schrijft u al uw uitvoeringsinstructies. Dit deel definieert ook de werking van uw functie.

BEGIN
  --Area of Circle pi*r*r;
  area := pi * (radius * radius);
  RETURN area; 
END;
/

Snelle informatie:
Om het kwadraat van de straal van de cirkel in het gebied van de cirkel te berekenen, kun je ook de ingebouwde functie van POWER (p, q) gebruiken. Deze functie heeft twee numerieke invoer nodig en retourneert één numerieke waarde die het antwoord is op de rekenkundige uitdrukking van p raise to q.

Laten we nu alle bovenstaande stukjes codes samenvoegen tot een enkele benoemde eenheid.

PL/SQL-functie voor het berekenen van "Area of ​​the Circle".

--Function Header
CREATE OR REPLACE FUNCTION circle_area (radius NUMBER) 
RETURN NUMBER IS
--Declare a constant and a variable
pi  	CONSTANT NUMBER(7,2) :=	3.141;
area 	NUMBER(7,2);
BEGIN
  --Area of Circle pi*r*r;
  area := pi * (radius * radius);
  RETURN area; 
END;

Een succesvolle compilatie zal een PL/SQL-blok met de naam maken dat uw PL/SQL-functie is met de naam circle_area.

Aangezien PL/SQL-functies PL/SQL-blok heten, worden ze permanent opgeslagen in uw database die u op elk moment kunt gebruiken.

Om uw PL/SQL-functie in actie te zien, moet u deze via uw programma aanroepen. Uw programma kan een anoniem PL/SQL-blok zijn, of een genoemd PL/SQL-blok of zelfs een SELECT-instructie gebruiken. Er zijn maar weinig van deze verschillende manieren om een ​​functie aan te roepen, gedemonstreerd in mijn video-tutorial over hetzelfde onderwerp op mijn YouTube-kanaal. Ik raad je ten zeerste aan om die video te bekijken.

Maar als je wilt dat ik een aparte blog schrijf over het aanroepen van een PL/SQL-functie, schrijf me dan op mijn Facebook of laat een Tweet achter op mijn Twitter.

Dat was het voor deze tutorial over het maken van een PL/SQL-functie in Oracle Database. Zorg ervoor dat je deze blog op je sociale media deelt en anderen helpt bij het leren.


  1. PDO-verbindingstest

  2. Prestaties en prijzen van PostgreSQL DigitalOcean vergelijken - ScaleGrid versus door DigitalOcean beheerde databases

  3. Hoe drie tafels aan te sluiten op laravel welsprekend model

  4. Hoe u SQL-resultaten filtert in een heeft-veel-door-relatie