logo

PL/SQL Introduktion

PL/SQL är ett blockstrukturerat språk som gör det möjligt för utvecklare att kombinera kraften i SQL med procedursatser. Alla satser i ett block skickas till oracle-motorn på en gång, vilket ökar bearbetningshastigheten och minskar trafiken.

Grunderna i PL/SQL

  • •PL/SQL står för Procedural Language extensions to the Structured Query Language (SQL).
  • PL/SQL är en kombination av SQL tillsammans med de procedurmässiga funktionerna i programmeringsspråk.
  • Oracle använder en PL/SQL-motor för att bearbeta PL/SQL-satserna.
  • PL/SQL inkluderar processuella språkelement som villkor och loopar. Det tillåter deklaration av konstanter och variabler, procedurer och funktioner, typer och variabler av dessa typer och triggers.

Nackdelar med SQL:



  • SQL förser inte programmerarna med en teknik för tillståndskontroll, looping och förgrening.
  • SQL-satser skickas till Oracle-motorn en i taget vilket ökar trafiken och minskar hastigheten.
  • SQL har ingen möjlighet att kontrollera fel under manipulering av data.

Funktioner i PL/SQL:

  1. PL/SQL är i grunden ett procedurspråk, som tillhandahåller funktionaliteten för beslutsfattande, iteration och många fler funktioner i procedurprogrammeringsspråk.
  2. PL/SQL kan köra ett antal frågor i ett block med ett enda kommando.
  3. Man kan skapa en PL/SQL-enhet såsom procedurer, funktioner, paket, triggers och typer, som lagras i databasen för återanvändning av applikationer.
  4. PL/SQL tillhandahåller en funktion för att hantera undantaget som inträffar i PL/SQL-blocket, känt som undantagshanteringsblock.
  5. Applikationer skrivna i PL/SQL är portabla till datorhårdvara eller operativsystem där Oracle är i drift.
  6. PL/SQL Erbjuder omfattande felkontroll.

Skillnader mellan SQL och PL/SQL:

SQL PL/SQL
SQL är en enda fråga som används för att utföra DML- och DDL-operationer. PL/SQL är ett block med koder som användes för att skriva hela programblocken/proceduren/funktionen, etc.
Det är deklarativt, som definierar vad som behöver göras, snarare än hur saker behöver göras. PL/SQL är procedur som definierar hur saker och ting ska göras.
Utför som ett enda uttalande. Kör som ett helt block.
Används främst för att manipulera data. Används främst för att skapa en applikation.
Kan inte innehålla PL/SQL-kod i den. Det är en förlängning av SQL, så den kan innehålla SQL inuti den.

Struktur för PL/SQL-block:



hur många miljoner är det i en miljard

PL/SQL utökar SQL genom att lägga till konstruktioner som finns i procedurspråk, vilket resulterar i ett strukturellt språk som är kraftfullare än SQL. Grundenheten i PL/SQL är ett block. Alla PL/SQL-program är uppbyggda av block, som kan kapslas in i varandra.

Vanligtvis utför varje block en logisk åtgärd i programmet. Ett block har följande struktur:

 DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
  • Deklarera avsnittet börjar med DEKLARERA nyckelord där variabler, konstanter, poster som markörer kan deklareras som lagrar data tillfälligt. Det består i grunden av definitionen av PL/SQL-identifierare. Denna del av koden är valfri.
  • Utförandesektionen börjar med BÖRJA och slutar med SLUTET nyckelord.Detta är ett obligatoriskt avsnitt och här är programlogiken skriven för att utföra alla uppgifter som loopar och villkorliga uttalanden. Den stöder alla DML kommandon, DDL kommandon och SQL*PLUS inbyggda funktioner också.
  • Undantagsavsnittet börjar med UNDANTAG nyckelord. Det här avsnittet är valfritt och innehåller satser som körs när ett körtidsfel inträffar. Eventuella undantag kan hanteras i detta avsnitt.

PL/SQL-identifierare

Det finns flera PL/SQL-identifierare som variabler, konstanter, procedurer, markörer, triggers etc.



  1. Variabler : Liksom flera andra programmeringsspråk måste variabler i PL/SQL deklareras innan de används. De bör också ha ett giltigt namn och datatyp. Syntax för deklaration av variabler:
variable_name datatype [NOT NULL := value ];>
  1. Exempel för att visa hur man deklarerar variabler i PL/SQL:

C




SQL>STÄLL PÅ SERVEROUTPUT;> SQL>DEKLARERA> >var1 INTEGER;> >var2 REAL;> >var3 varchar2(20) ;> BEGIN> >null;> END;> />

>

>

  1. Produktion:
PL/SQL procedure successfully completed.>
  1. Förklaring:
    • SÄTT PÅ SERVEROUTPUT : Den används för att visa bufferten som används av dbms_output.
    • var1 HELTAL: Det är deklarationen av variabel, namngiven var1 som är av heltalstyp. Det finns många andra datatyper som kan användas som float, int, real, smallint, long etc. Det stöder även variabler som används i SQL såväl som NUMBER(prec, scale), varchar, varchar2 etc.
    • PL/SQL-proceduren har slutförts.: Den visas när koden kompileras och exekveras framgångsrikt.
    • Snedstreck (/) efter END;: Snedstrecket (/) talar om för SQL*Plus att exekvera blocket.
    • Uppdragsoperatör (:=) : Den används för att tilldela ett värde till en variabel.
  2. Visar utdata : Utgångarna visas med hjälp av DBMS_OUTPUT som är ett inbyggt paket som gör det möjligt för användaren att visa utdata, felsökningsinformation och skicka meddelanden från PL/SQL-block, underprogram, paket och triggers. Låt oss se ett exempel för att se hur man visar ett meddelande med PL/SQL:

C


css-listor



SQL>STÄLL PÅ SERVEROUTPUT;> SQL>DEKLARERA> >var varchar2(40) :=>'I love GeeksForGeeks'> ;> >BEGIN> >dbms_output.put_line(var);> >END;> >/>

>

>

  1. Produktion:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
  1. Förklaring:
    • dbms_output.put_line : Detta kommando används för att dirigera PL/SQL-utgången till en skärm.
  2. Använder kommentarer : Liksom i många andra programmeringsspråk, även i PL/SQL, kan kommentarer läggas in i koden som inte har någon effekt i koden. Det finns två syntaxer för att skapa kommentarer i PL/SQL:
    • En rad kommentar: För att skapa en kommentar på en rad , symbolen– –är använd.
    • Flerlinjekommentar: För att skapa kommentarer som sträcker sig över flera rader, symbolen/*och*/är använd.
  3. Tar input från användaren : Precis som i andra programmeringsspråk, även i PL/SQL, kan vi ta input från användaren och lagra det i en variabel. Låt oss se ett exempel för att visa hur man tar input från användare i PL/SQL:

C




SQL>STÄLL PÅ SERVEROUTPUT;> SQL>DEKLARERA> >-- taking input>for> variable a> >a number := &a;> > >-- taking input>for> variable b> >b varchar2(30) := &b;> >BEGIN> >null;> >END;> >/>

>

>

  1. Produktion:
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. (***) Låt oss se ett exempel på PL/SQL för att demonstrera alla ovanstående begrepp i ett enda kodblock.

C




a b c tal
--PL/SQL code to print sum of two numbers taken from the user.> SQL>STÄLL PÅ SERVEROUTPUT;> SQL>DEKLARERA> > >-- 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-exekveringsmiljö:

PL/SQL-motorn finns i Oracle-motorn. Oracle-motorn kan bearbeta inte bara enstaka SQL-satser utan även block med många satser. Anropet till Oracle-motorn behöver bara göras en gång för att exekvera ett valfritt antal SQL-satser om dessa SQL-satser är buntade inuti ett PL/SQL-block.