logo

PL/SQL-introductie

PL/SQL is een blokgestructureerde taal waarmee ontwikkelaars de kracht van SQL kunnen combineren met procedurele instructies. Alle instructies van een blok worden in één keer doorgegeven aan de Oracle-engine, waardoor de verwerkingssnelheid toeneemt en het verkeer afneemt.

knn-algoritme

Basisprincipes van PL/SQL

  • •PL/SQL staat voor procedurele taaluitbreidingen op de Structured Query Language (SQL).
  • PL/SQL is een combinatie van SQL en de procedurele kenmerken van programmeertalen.
  • Oracle gebruikt een PL/SQL-engine om de PL/SQL-instructies te verwerken.
  • PL/SQL bevat procedurele taalelementen zoals voorwaarden en lussen. Het maakt declaratie mogelijk van constanten en variabelen, procedures en functies, typen en variabelen van die typen en triggers.

Nadelen van SQL:



  • SQL biedt de programmeurs geen techniek voor conditiecontrole, looping en vertakkingen.
  • SQL-instructies worden één voor één doorgegeven aan de Oracle-engine, waardoor het verkeer toeneemt en de snelheid afneemt.
  • SQL heeft geen mogelijkheid om fouten te controleren tijdens het manipuleren van gegevens.

Kenmerken van PL/SQL:

  1. PL/SQL is in feite een procedurele taal, die de functionaliteit van besluitvorming, iteratie en nog veel meer functies van procedurele programmeertalen biedt.
  2. PL/SQL kan met één enkel commando een aantal queries in één blok uitvoeren.
  3. Men kan een PL/SQL-eenheid creëren, zoals procedures, functies, pakketten, triggers en typen, die in de database worden opgeslagen voor hergebruik door applicaties.
  4. PL/SQL biedt een functie voor het afhandelen van uitzonderingen die voorkomen in het PL/SQL-blok, ook wel exception handling block genoemd.
  5. Applicaties geschreven in PL/SQL zijn overdraagbaar naar computerhardware of besturingssystemen waarop Oracle operationeel is.
  6. PL/SQL Biedt uitgebreide foutcontrole.

Verschillen tussen SQL en PL/SQL:

SQL PL/SQL
SQL is een enkele query die wordt gebruikt om DML- en DDL-bewerkingen uit te voeren. PL/SQL is een codeblok waarmee de volledige programmablokken/procedure/functie, enz. werden geschreven.
Het is declaratief, dat definieert wat er gedaan moet worden, in plaats van hoe dingen gedaan moeten worden. PL/SQL is procedureel en definieert hoe de dingen gedaan moeten worden.
Uitvoeren als één enkele instructie. Uitvoeren als een heel blok.
Wordt voornamelijk gebruikt om gegevens te manipuleren. Wordt voornamelijk gebruikt om een ​​applicatie te maken.
Kan geen PL/SQL-code bevatten. Het is een uitbreiding van SQL, dus het kan SQL erin bevatten.

Structuur van PL/SQL-blok:



PL/SQL breidt SQL uit door constructies toe te voegen die gevonden worden in procedurele talen, wat resulteert in een structurele taal die krachtiger is dan SQL. De basiseenheid in PL/SQL is een blok. Alle PL/SQL-programma's zijn opgebouwd uit blokken, die in elkaar kunnen worden genest.

Normaal gesproken voert elk blok een logische actie uit in het programma. Een blok heeft de volgende structuur:

 DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
  • Declareersectie begint met VERKLAREN trefwoord waarin variabelen, constanten en records als cursors kunnen worden gedeclareerd die gegevens tijdelijk opslaan. Het bestaat in principe uit de definitie van PL/SQL-identificatoren. Dit deel van de code is optioneel.
  • Het uitvoeringsgedeelte begint met BEGINNEN en eindigt met EINDE trefwoord.Dit is een verplichte sectie en hier wordt de programmalogica geschreven om elke taak uit te voeren, zoals lussen en voorwaardelijke instructies. Het ondersteunt alles DML commando's, DDL opdrachten en ook ingebouwde SQL*PLUS-functies.
  • Het uitzonderingsgedeelte begint met UITZONDERING trefwoord. Deze sectie is optioneel en bevat instructies die worden uitgevoerd wanneer er een runtimefout optreedt. Eventuele uitzonderingen kunnen in deze sectie worden afgehandeld.

PL/SQL-ID's

Er zijn verschillende PL/SQL-identificatoren, zoals variabelen, constanten, procedures, cursors, triggers enz.



  1. Variabelen : Net als bij verschillende andere programmeertalen moeten variabelen in PL/SQL vóór gebruik worden gedeclareerd. Ze moeten ook een geldige naam en gegevenstype hebben. Syntaxis voor het declareren van variabelen:
variable_name datatype [NOT NULL := value ];>
  1. Voorbeeld om te laten zien hoe variabelen in PL/SQL moeten worden gedeclareerd:

C




SQL>ZET SERVEROUTPUT AAN;> SQL>VERKLAREN> >var1 INTEGER;> >var2 REAL;> >var3 varchar2(20) ;> BEGIN> >null;> END;> />

>

>

  1. Uitgang:
PL/SQL procedure successfully completed.>
  1. Uitleg:
    • ZET SERVERUITGANG AAN : Het wordt gebruikt om de buffer weer te geven die wordt gebruikt door de dbms_output.
    • var1 INTEGER : Het is de declaratie van een variabele genaamd var1 die van het integer-type is. Er zijn veel andere gegevenstypen die kunnen worden gebruikt, zoals float, int, real, smallint, long etc. Het ondersteunt ook variabelen die in SQL worden gebruikt, evenals NUMBER (prec, scale), varchar, varchar2 etc.
    • PL/SQL-procedure met succes voltooid.: Het wordt weergegeven wanneer de code met succes is gecompileerd en uitgevoerd.
    • Schuine streep (/) na END;: De schuine streep (/) vertelt SQL*Plus dat het blok moet worden uitgevoerd.
    • Toewijzingsoperator (:=) : Het wordt gebruikt om een ​​waarde aan een variabele toe te wijzen.
  2. Uitvoer weergeven : De uitvoer wordt weergegeven met behulp van DBMS_OUTPUT, een ingebouwd pakket waarmee de gebruiker uitvoer kan weergeven, informatie kan opsporen en berichten kan verzenden vanuit PL/SQL-blokken, subprogramma's, pakketten en triggers. Laten we een voorbeeld bekijken om te zien hoe u een bericht kunt weergeven met PL/SQL:

C




SQL>ZET SERVEROUTPUT AAN;> SQL>VERKLAREN> >var varchar2(40) :=>'I love GeeksForGeeks'> ;> >BEGIN> >dbms_output.put_line(var);> >END;> >/>

>

>

  1. Uitgang:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
  1. Uitleg:
    • dbms_output.put_line : Dit commando wordt gebruikt om de PL/SQL-uitvoer naar een scherm te leiden.
  2. Opmerkingen gebruiken : Net als in veel andere programmeertalen kunnen ook in PL/SQL opmerkingen in de code worden geplaatst, wat geen effect heeft op de code. Er zijn twee syntaxis om commentaar te creëren in PL/SQL:
    • Enkele regel commentaar: Om een ​​opmerking van één regel te maken, moet het symbool– –is gebruikt.
    • Commentaar op meerdere regels: Om opmerkingen te maken die zich over meerdere regels uitstrekken, gebruikt u het symbool/*En*/is gebruikt.
  3. Invoer van de gebruiker aannemen : Net als in andere programmeertalen kunnen we ook in PL/SQL invoer van de gebruiker overnemen en deze in een variabele opslaan. Laten we een voorbeeld bekijken om te laten zien hoe u input van gebruikers in PL/SQL kunt gebruiken:

C


Java-tutorial voor beginners



SQL>ZET SERVEROUTPUT AAN;> SQL>VERKLAREN> >-- taking input>for> variable a> >a number := &a;> > >-- taking input>for> variable b> >b varchar2(30) := &b;> >BEGIN> >null;> >END;> >/>

>

>

  1. Uitgang:
Enter value for a: 24 old 2: a number := &a; new 2: a number := 24; Enter value for b: 'GeeksForGeeks' old 3: b varchar2(30) := &b; new 3: b varchar2(30) := 'GeeksForGeeks'; PL/SQL procedure successfully completed.>
  1. (***) Laten we een voorbeeld van PL/SQL bekijken om alle bovenstaande concepten in één enkel codeblok te demonstreren.

C

java wiskunde pow




--PL/SQL code to print sum of two numbers taken from the user.> SQL>ZET SERVEROUTPUT AAN;> SQL>VERKLAREN> > >-- taking input>for> variable a> >a integer := &a ;> > >-- taking input>for> variable b> >b integer := &b ;> >c integer ;> >BEGIN> >c := a + b ;> >dbms_output.put_line(>'Sum of '>||a||>' and '>||b||>' is = '>||c);> >END;> >/>

>

>

Enter value for a: 2 Enter value for b: 3 Sum of 2 and 3 is = 5 PL/SQL procedure successfully completed.>

PL/SQL-uitvoeringsomgeving:

De PL/SQL-engine bevindt zich in de Oracle-engine. De Oracle-engine kan niet alleen een enkele SQL-instructie verwerken, maar ook een groot aantal instructies blokkeren. De aanroep naar de Oracle-engine hoeft slechts één keer te worden gedaan om een ​​willekeurig aantal SQL-instructies uit te voeren als deze SQL-instructies zijn gebundeld in een PL/SQL-blok.