PL/SQL je blokovo štruktúrovaný jazyk, ktorý umožňuje vývojárom skombinovať silu SQL s procedurálnymi príkazmi. Všetky príkazy bloku sú odovzdané do oracle engine všetky naraz, čo zvyšuje rýchlosť spracovania a znižuje prenos.
Základy PL/SQL
- •PL/SQL je skratka pre Procedural Language extensions k Structured Query Language (SQL).
- PL/SQL je kombináciou SQL spolu s procedurálnymi vlastnosťami programovacích jazykov.
- Oracle používa PL/SQL engine na spracovanie PL/SQL príkazov.
- PL/SQL obsahuje prvky procedurálneho jazyka, ako sú podmienky a slučky. Umožňuje deklaráciu konštánt a premenných, procedúr a funkcií, typov a premenných týchto typov a spúšťačov.
Nevýhody SQL:
- SQL neposkytuje programátorom techniku kontroly stavu, cyklovania a vetvenia.
- Príkazy SQL sa do motora Oracle odovzdávajú jeden po druhom, čo zvyšuje návštevnosť a znižuje rýchlosť.
- SQL nemá žiadne zariadenie na kontrolu chýb počas manipulácie s údajmi.
Vlastnosti PL/SQL:
- PL/SQL je v podstate procedurálny jazyk, ktorý poskytuje funkcionalitu rozhodovania, iterácie a mnoho ďalších funkcií procedurálnych programovacích jazykov.
- PL/SQL môže vykonať množstvo dotazov v jednom bloku pomocou jedného príkazu.
- Je možné vytvoriť jednotku PL/SQL, ako sú procedúry, funkcie, balíky, spúšťače a typy, ktoré sú uložené v databáze na opätovné použitie aplikáciami.
- PL/SQL poskytuje funkciu na spracovanie výnimky, ktorá sa vyskytuje v bloku PL/SQL známom ako blok spracovania výnimiek.
- Aplikácie napísané v PL/SQL sú prenosné na počítačový hardvér alebo operačný systém, kde je funkčná spoločnosť Oracle.
- PL/SQL Ponúka rozsiahlu kontrolu chýb.
Rozdiely medzi SQL a PL/SQL:
SQL | PL/SQL |
SQL je jediný dotaz, ktorý sa používa na vykonávanie operácií DML a DDL. | PL/SQL je blok kódov, ktoré sa používajú na písanie celých programových blokov/postupov/funkcií atď. |
Je deklaratívna, ktorá definuje, čo je potrebné urobiť, a nie ako veci treba urobiť. | PL/SQL je procedurálny, ktorý definuje, ako treba veci urobiť. |
Vykonajte ako jeden príkaz. | Vykonajte ako celý blok. |
Používa sa hlavne na manipuláciu s údajmi. | Používa sa hlavne na vytvorenie aplikácie. |
Nesmie obsahovať kód PL/SQL. | Je to rozšírenie SQL, takže môže obsahovať SQL. |
Štruktúra PL/SQL bloku:
PL/SQL rozširuje SQL pridaním konštrukcií, ktoré sa nachádzajú v procedurálnych jazykoch, výsledkom čoho je štrukturálny jazyk, ktorý je výkonnejší ako SQL. Základnou jednotkou v PL/SQL je blok. Všetky PL/SQL programy sú tvorené blokmi, ktoré môžu byť vnorené do seba.
Každý blok zvyčajne vykonáva v programe logickú akciu. Blok má nasledujúcu štruktúru:
DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
- Sekcia deklarácie začína na VYHLÁSIŤ kľúčové slovo, v ktorom možno deklarovať premenné, konštanty, záznamy ako kurzory, ktoré dočasne ukladajú údaje. V podstate pozostáva z definície PL/SQL identifikátorov. Táto časť kódu je voliteľná.
- Sekcia vykonávania začína s ZAČAŤ a končí s KONIEC Toto je povinná sekcia a tu je napísaná logika programu na vykonávanie akejkoľvek úlohy, ako sú slučky a podmienené príkazy. Podporuje všetky DML príkazy, DDL príkazy a vstavané funkcie SQL*PLUS.
- Časť výnimiek začína na VÝNIMKA keyword.Táto sekcia je voliteľná a obsahuje príkazy, ktoré sa vykonajú, keď sa vyskytne chyba pri spustení. Akékoľvek výnimky je možné vyriešiť v tejto časti.
PL/SQL identifikátory
Existuje niekoľko identifikátorov PL/SQL, ako sú premenné, konštanty, procedúry, kurzory, spúšťače atď.
- Premenné : Rovnako ako niekoľko iných programovacích jazykov, premenné v PL/SQL musia byť pred použitím deklarované. Mali by mať platný názov a typ údajov. Syntax pre deklaráciu premenných:
variable_name datatype [NOT NULL := value ];>
- Príklad, ktorý ukazuje, ako deklarovať premenné v PL/SQL:
C
ako previesť reťazec na celé číslo java
SQL>SET SERVEROUTPUT ON;> SQL>DECLARE> > var1 INTEGER;> > var2 REAL;> > var3 varchar2(20) ;> BEGIN> > null;> END;> /> |
>
>
- Výkon:
PL/SQL procedure successfully completed.>
- Vysvetlenie:
- NASTAVTE VÝSTUP SERVERA ZAPNUTÝ : Používa sa na zobrazenie vyrovnávacej pamäte používanej dbms_output.
- var1 INTEGER : Je to deklarácia premennej s názvom var1 ktorý je celočíselného typu. Existuje mnoho ďalších dátových typov, ktoré možno použiť ako float, int, real, smallint, long atď. Podporuje tiež premenné používané v SQL, ako aj NUMBER (prec, scale), varchar, varchar2 atď.
- Procedúra PL/SQL úspešne dokončená.: Zobrazí sa, keď je kód skompilovaný a úspešne vykonaný.
- Lomka (/) za END;: Lomka (/) hovorí SQL*Plus, aby vykonal blok.
- Operátor priradenia (:=) : Používa sa na priradenie hodnoty premennej.
- Zobrazenie výstupu : Výstupy sa zobrazujú pomocou DBMS_OUTPUT, čo je vstavaný balík, ktorý umožňuje používateľovi zobraziť výstup, informácie o ladení a odosielať správy z blokov PL/SQL, podprogramov, balíkov a spúšťačov. Pozrime sa na príklad, ako zobraziť správu pomocou PL/SQL:
C
SQL>SET SERVEROUTPUT ON;> SQL>DECLARE> > var varchar2(40) :=> 'I love GeeksForGeeks'> ;> > BEGIN> > dbms_output.put_line(var);> > END;> > /> |
>
>
- Výkon:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
- Vysvetlenie:
- dbms_output.put_line : Tento príkaz sa používa na nasmerovanie výstupu PL/SQL na obrazovku.
- Používanie komentárov : Rovnako ako v mnohých iných programovacích jazykoch, aj v PL/SQL môžu byť do kódu vložené komentáre, ktoré nemajú na kód žiadny vplyv. Existujú dve syntaxe na vytváranie komentárov v PL/SQL:
- Jednoriadkový komentár: Ak chcete vytvoriť jednoriadkový komentár , symbol– –sa používa.
- Viacriadkový komentár: Ak chcete vytvoriť komentáre, ktoré sa rozprestierajú na niekoľkých riadkoch, symbol/*a*/sa používa.
- Preberanie vstupu od používateľa : Rovnako ako v iných programovacích jazykoch, aj v PL/SQL môžeme prevziať vstup od používateľa a uložiť ho do premennej. Pozrime sa na príklad, ktorý ukáže, ako získať vstup od používateľov v PL/SQL:
C
SQL>SET SERVEROUTPUT ON;> SQL>DECLARE> > -- taking input> for> variable a> > a number := &a;> > > -- taking input> for> variable b> > b varchar2(30) := &b;> > BEGIN> > null;> > END;> > /> |
>
>
- Výkon:
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.>
- (***) Pozrime sa na príklad PL/SQL, aby sme demonštrovali všetky vyššie uvedené koncepty v jednom bloku kódu.
C
--PL/SQL code to print sum of two numbers taken from the user.> SQL>SET SERVEROUTPUT ON;> SQL>DECLARE> > > -- 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;> > /> |
>
>
gimp odstraňuje pozadie
Enter value for a: 2 Enter value for b: 3 Sum of 2 and 3 is = 5 PL/SQL procedure successfully completed.>
Vykonávacie prostredie PL/SQL:
Motor PL/SQL sa nachádza v motore Oracle. Motor Oracle dokáže spracovať nielen jeden príkaz SQL, ale aj blok mnohých príkazov. Volanie motora Oracle je potrebné vykonať iba raz, aby sa vykonal ľubovoľný počet príkazov SQL, ak tieto príkazy SQL sú spojené vo vnútri bloku PL/SQL.