PL/SQL ir bloku strukturēta valoda, kas ļauj izstrādātājiem apvienot SQL jaudu ar procesuāliem paziņojumiem. Visi bloka paziņojumi tiek nodoti Oracle dzinējam uzreiz, kas palielina apstrādes ātrumu un samazina trafiku.
PL/SQL pamati
- •PL/SQL apzīmē strukturētās vaicājumu valodas (SQL) procesuālās valodas paplašinājumus.
- PL/SQL ir SQL kombinācija ar programmēšanas valodu procesuālajām iezīmēm.
- Oracle izmanto PL/SQL dzinēju, lai apstrādātu PL/SQL paziņojumus.
- PL/SQL ietver procesuālās valodas elementus, piemēram, nosacījumus un cilpas. Tas ļauj deklarēt konstantes un mainīgos lielumus, procedūras un funkcijas, šo tipu un trigeru veidus un mainīgos.
SQL trūkumi:
- SQL nenodrošina programmētājiem stāvokļa pārbaudes, cilpas veidošanas un atzarošanas paņēmienus.
- SQL priekšraksti tiek nodoti Oracle dzinējam pa vienam, kas palielina trafiku un samazina ātrumu.
- SQL nav kļūdu pārbaudes iespējas datu manipulācijas laikā.
PL/SQL funkcijas:
- PL/SQL būtībā ir procesuālā valoda, kas nodrošina lēmumu pieņemšanas funkcionalitāti, iterāciju un daudzas citas procesuālās programmēšanas valodu funkcijas.
- PL/SQL var izpildīt vairākus vaicājumus vienā blokā, izmantojot vienu komandu.
- Var izveidot PL/SQL vienību, piemēram, procedūras, funkcijas, pakotnes, trigerus un tipus, kas tiek saglabāti datu bāzē, lai tos izmantotu atkārtoti.
- PL/SQL nodrošina līdzekli, lai apstrādātu izņēmumus, kas rodas PL/SQL blokā, kas pazīstams kā izņēmumu apstrādes bloks.
- Lietojumprogrammas, kas rakstītas PL/SQL valodā, ir pārnēsājamas uz datora aparatūru vai operētājsistēmu, kurā darbojas Oracle.
- PL/SQL Piedāvā plašu kļūdu pārbaudi.
Atšķirības starp SQL un PL/SQL:
SQL | PL/SQL |
SQL ir viens vaicājums, ko izmanto DML un DDL operāciju veikšanai. | PL/SQL ir kodu bloks, ko izmantoja visu programmas bloku/procedūru/funkciju u.c. rakstīšanai. |
Tas ir deklaratīvs, kas nosaka, kas ir jādara, nevis kā lietas ir jādara. | PL/SQL ir procesuāls, kas nosaka, kā lietas ir jādara. |
Izpildiet kā vienu paziņojumu. | Izpildīt kā veselu bloku. |
Galvenokārt izmanto, lai manipulētu ar datiem. | Galvenokārt izmanto, lai izveidotu lietojumprogrammu. |
Tajā nevar būt PL/SQL kods. | Tas ir SQL paplašinājums, tāpēc tajā var būt ietverts SQL. |
PL/SQL bloka struktūra:
kā izlauzties no brīža cilpas java
PL/SQL paplašina SQL, pievienojot procesuālās valodās atrodamas konstrukcijas, kā rezultātā tiek iegūta strukturālā valoda, kas ir jaudīgāka par SQL. PL/SQL pamatvienība ir bloks. Visas PL/SQL programmas sastāv no blokiem, kurus var ligzdot vienu otrā.
Parasti katrs bloks programmā veic loģisku darbību. Blokam ir šāda struktūra:
DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
- Deklarēšanas sadaļa sākas ar DEKLARĒT atslēgvārds, kurā kā kursorus var deklarēt mainīgos, konstantes, ierakstus, kas īslaicīgi saglabā datus. Tas būtībā sastāv no PL/SQL identifikatoru definīcijas. Šī koda daļa nav obligāta.
- Izpildes sadaļa sākas ar SĀKT un beidzas ar BEIGAS atslēgvārds.Šī ir obligāta sadaļa, un šeit ir rakstīta programmas loģika, lai veiktu jebkuru uzdevumu, piemēram, cilpas un nosacījumu paziņojumus. Tas atbalsta visus DML komandas, DDL komandas un SQL*PLUS iebūvētās funkcijas.
- Izņēmumu sadaļa sākas ar IZŅĒMUMS atslēgvārds.Šī sadaļa nav obligāta, un tajā ir ietverti priekšraksti, kas tiek izpildīti, kad rodas izpildlaika kļūda. Šajā sadaļā var aplūkot visus izņēmumus.
PL/SQL identifikatori
Ir vairāki PL/SQL identifikatori, piemēram, mainīgie, konstantes, procedūras, kursori, trigeri utt.
- Mainīgie lielumi : Tāpat kā vairākas citas programmēšanas valodas, PL/SQL mainīgie ir jādeklarē pirms tā izmantošanas. Tiem jābūt arī derīgam nosaukumam un datu tipam. Sintakse mainīgo deklarēšanai:
variable_name datatype [NOT NULL := value ];>
- Piemērs, lai parādītu, kā deklarēt mainīgos PL/SQL:
C
SQL>IESTATĪT SERVEROUTPUT ON;> SQL>DEKLARĒT> > var1 INTEGER;> > var2 REAL;> > var3 varchar2(20) ;> BEGIN> > null;> END;> /> |
kā pārvērst virkni par java veselu skaitli
>
>
- Izvade:
PL/SQL procedure successfully completed.>
- Paskaidrojums:
- IESLĒGT SERVEROUTPUT : To izmanto, lai parādītu buferi, ko izmanto dbms_output.
- var1 INTEGER : Tā ir nosauktā mainīgā deklarācija var1 kas ir vesela skaitļa tipa. Ir daudz citu datu veidu, ko var izmantot, piemēram, float, int, real, smallint, long utt. Tas atbalsta arī mainīgos, ko izmanto SQL, kā arī NUMBER (prec, scale), varchar, varchar2 utt.
- PL/SQL procedūra veiksmīgi pabeigta.: Tas tiek parādīts, kad kods ir veiksmīgi apkopots un izpildīts.
- Slīpsvītra (/) aiz END;: Slīpsvītra (/) liek SQL*Plus izpildīt bloku.
- Piešķiršanas operators (:=) : to izmanto, lai mainīgajam piešķirtu vērtību.
- Rāda izvadi : Izvadi tiek parādīti, izmantojot DBMS_OUTPUT, kas ir iebūvēta pakotne, kas ļauj lietotājam parādīt izvades, atkļūdošanas informāciju un sūtīt ziņojumus no PL/SQL blokiem, apakšprogrammām, pakotnēm un trigeriem. Apskatīsim piemēru, lai redzētu, kā parādīt ziņojumu, izmantojot PL/SQL:
C
apakšvirknes funkcija java
SQL>IESTATĪT SERVEROUTPUT ON;> SQL>DEKLARĒT> > var varchar2(40) :=> 'I love GeeksForGeeks'> ;> > BEGIN> > dbms_output.put_line(var);> > END;> > /> |
>
>
- Izvade:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
- Paskaidrojums:
- dbms_output.put_line : šo komandu izmanto, lai novirzītu PL/SQL izvadi uz ekrānu.
- Izmantojot komentārus : Tāpat kā daudzās citās programmēšanas valodās, arī PL/SQL kodā var ievietot komentārus, kam kodā nav nekādas ietekmes. Ir divas sintakses, lai izveidotu komentārus PL/SQL:
- Vienas rindiņas komentārs: Lai izveidotu vienas rindas komentāru , simbols– –tiek izmantots.
- Vairāku rindiņu komentārs: Lai izveidotu komentārus, kas aptver vairākas rindiņas, simbols/*un*/tiek izmantots.
- Ievades saņemšana no lietotāja : Tāpat kā citās programmēšanas valodās, arī PL/SQL mēs varam ņemt ievadi no lietotāja un saglabāt to mainīgajā. Apskatīsim piemēru, lai parādītu, kā iegūt ievadi no lietotājiem PL/SQL:
C
Android versiju vēsture
SQL>IESTATĪT SERVEROUTPUT ON;> SQL>DEKLARĒT> > -- taking input> for> variable a> > a number := &a;> > > -- taking input> for> variable b> > b varchar2(30) := &b;> > BEGIN> > null;> > END;> > /> |
>
>
- Izvade:
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.>
- (***) Apskatīsim piemēru par PL/SQL, lai parādītu visas iepriekš minētās koncepcijas vienā koda blokā.
C
fibonači sērija gadsimtā
--PL/SQL code to print sum of two numbers taken from the user.> SQL>IESTATĪT SERVEROUTPUT ON;> SQL>DEKLARĒT> > > -- 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 izpildes vide:
PL/SQL dzinējs atrodas Oracle dzinējā. Oracle dzinējs var apstrādāt ne tikai vienu SQL paziņojumu, bet arī daudzu paziņojumu blokus. Oracle dzinēja izsaukums ir jāveic tikai vienu reizi, lai izpildītu neierobežotu skaitu SQL paziņojumu, ja šie SQL priekšraksti. ir iekļauti PL/SQL blokā.