Vodič za PL / SQL: Sve što trebate znati o PL / SQL-u

Vodič za PL / SQL pokriva sva detaljna objašnjenja svih potrebnih koncepata potrebnih za savladavanje programiranja PL / SQL s raznim primjerima

PL / SQL je proceduralni jezik koji prevladava nedostatke s kojima se suočava Strukturirani jezik upita . To je proširenje SQL-a i čak možemo koristiti SQL upite bez ikakvih gnjavaža u bilo kojoj PL / SQL aplikaciji ili programu. U ovom uputstvu za PL / SQL detaljno ćemo proći kroz osnovne koncepte PL / SQL-a. U ovom su članku obrađene sljedeće teme.

Što je PL / SQL?

Označava procesno jezično proširenje na jezik strukturiranog upita . Oracle je stvorio PL / SQL koji proširuje neka ograničenja SQL-a kako bi pružio sveobuhvatnije rješenje za izgradnju kritičnih aplikacija pokrenutih na oracleu .





logo-pl / sql tutorial - edureka

Značajke

  • PL / SQL pruža funkcionalnost proceduralnog jezika poput donošenja odluka, ponavljanja itd.

  • Koristeći jednu naredbu, PL / SQL može izvršiti brojne upite.



  • Također možemo ponovno koristiti PL / SQL jedinice kao što su funkcije, okidači, procedure itd. Koje su pohranjene u bazi podataka nakon izrade.

  • PL / SQL također ima blok za rukovanje iznimkama koji obrađuje iznimke u PL / SQL.

  • Opsežna provjera pogrešaka također je moguća pomoću PL / SQL-a



  • Aplikacije napisane na PL / SQL prenosive su na drugi hardver i operativne sustave pod uvjetom da oracle mora biti operativan.

PL / SQL vs SQL

SQL PL / SQL
SQL je jedan upit koji se koristi za izvođenje DDL i DML operacijaPL / SQL je blok kodova koji se koristi za definiranje cijelog programa ili postupka / funkcije, itd
Ona zapravo ne definira kako stvari treba raditi, već definira što treba učinitiPL / SQL definira kako stvari treba raditi
Izvršava jednu izjavuIzvršava blok izjava odjednom.
SQL se uglavnom koristi za manipulaciju podacimaPL / SQL se, pak, koristi za stvaranje aplikacija
Ne može sadržavati PL / SQL kôdBudući da je riječ o SQL proširenju, u njemu se može nalaziti SQL kôd

Blok strukture u PL / SQL-u

PL / SQL obično organizira kôd u blokove. Blok koda bez imena poznat je kao anonimni blok. Poznat je kao anonimni blok jer nije spremljen u bazu podataka oracle. Pogledajmo anonimni blok u PL / SQL-u.

[DECLARE] izjave izjave [BEGIN] naredbe izvršenja [EXCEPTION] izjave iznimke END /

Gledajući gore prikazani dijagram, možemo vidjeti da je blokovska struktura podijeljena u četiri dijela, tj. Deklaracija, početak, iznimka i kraj. Pokušajmo razumjeti kako blok struktura radi u PL / SQL-u. Od svih ovih odjeljaka, odjeljak izvršenja je obvezan, a ostali su neobavezni.

  • PROGLASITI ključna riječ koristi se za odjeljak deklaracije koristi se za deklariranje vrsta podataka i struktura kao što su varijable, funkcije itd.

  • POČETI ključna riječ koristi se za odjeljak izvršenja. Obavezan je i sadrži sve izjave koje treba izvršiti. U ovom je bloku definirana poslovna logika, u ovom bloku možemo koristiti i proceduralne ili SQL izjave.

  • The IZUZETAK ključna riječ koristi se za odjeljak iznimke. Sadrži sve izjave o iznimkama.

  • KRAJ ključna riječ označava kraj bloka, a kosa crta ‘/’ govori alatu koji koristite (Oracle Database Tool) za izvršavanje PL / SQL bloka.

Evo jednostavnog primjera koji pokazuje kako možemo koristiti PL / SQL kod.

POČNI NULL KRAJ /

Sad kad znamo kako blokovska struktura radi u PL / SQL-u, shvatimo različite aspekte PL / SQL-a poput deklariranja, imenovanja i dodjeljivanja vrijednosti varijablama.

PL / SQL varijable

Varijabla u PL / SQL u osnovi je naziv koji varira ili privremeno mjesto pohrane koje podržava određenu vrstu podataka. Pogledajmo kako možemo koristiti varijable u PL / SQL programu.

Pravila promjenjivog imenovanja

PL / SQL slijedi sljedeća pravila za imenovanje varijabli.

  • Varijabla ne može imati više od 31 znaka

  • Ime varijable trebalo bi počinjati s ASCII znakom. Budući da PL / SQL razlikuje velika i mala slova, veliko i malo slovo bit će različite varijable.

  • Nakon prvog znaka mora postojati poseban znak ($, _) ili bilo koji broj.

Konvencije o imenovanju

Za korištenje varijabli koristite sljedeće dolje navedene konvencije imenovanja.

Prefiks Vrsta podataka
v_VARCHAR2
n_BROJ
t_STOL
r_RED
d_DATUM
b_BOOLEAN

Izjava

Pokušajmo razumjeti kako se deklariranje varijabli vrši u PL / SQL-u

Deklaracija uključuje naziv varijable iza kojeg slijedi vrsta podataka i odvojena zarezom. Slijedi primjer koji pokazuje kako možete deklarirati varijablu u PL / SQL.

PROGLAŠI v_name VARCHAR (25) n_age BROJ (3) POČINI NULL KRAJ

Također možete dodati duljinu vrste podataka kao što smo učinili u gornjem primjeru.

Sidra

Sidro se u osnovi odnosi na upotrebu ključne riječi% TYPE koja deklarira varijablu s tipom podataka povezanim s tipom podataka stupca određenog stupca u tablici.

Pogledajte primjer da biste to razumjeli. Pretpostavimo da imamo tablicu ZAPOSLENIH, sidra možemo koristiti na sljedeći način.

PROGLAŠITE v_ime ZAPOSLENI.NAME% TIP n_age ZAPOSLENI.AGE% TIP POČETI NULL KRAJ /

Zadatak

Dodjela varijabli prilično je jednostavna, pomoću operatora dodjele možemo dodijeliti vrijednosti varijabli. Sljedeći primjer pokazuje kako varijabli možemo dodijeliti vrijednosti.

PROGLAŠI v_name VARCHAR (20) n_course VARCHAR (10) POČINI v_name = 'edureka' v_course = 'sql' END /

Inicijalizacija

Vrijednost za varijablu možemo inicijalizirati i u odjeljku deklaracije. Sljedeći primjer pokazuje kako možemo inicijalizirati vrijednosti varijablom.

PROGLAŠI v_name VARCHAR (20) = 'edureka' n_kurs VARCHAR (10) = 'sql' POČINI NULL KRAJ /

Sad kad znamo kako možemo raditi s varijablama, pokušajmo razumjeti kako ćemo koristiti funkcije u PL / SQL-u.

java split string više graničnika

Funkcija u PL / SQL

Funkcija u PL / SQL-u u osnovi je imenovani blok koji vraća vrijednost. Također je poznat kao potprogram ili potprogram, sljedeća sintaksa pokazuje kako možemo koristiti funkcije u PL / SQL-u.

CREATE [OR REPLACE] FUNCTION ime_funkcije [(parameter_1 [IN] [OUT] data_type, parameter_2 [IN] [OUT] data_type, parameter_N [IN] [OUT] data_type] RETURN return_data_type JE BEGIN naredbe return return_data_type EXCEPTION END /

Prije svega, morate navesti ime funkcije nakon ključne riječi. Naziv funkcije mora počinjati glagolom. Funkcija ne smije imati nijedan, jedan ili više parametara koje specificiramo u parametrima. Moramo eksplicitno navesti vrstu podataka svakog parametra, a zatim dolazi način koji može učiniti bilo što od sljedećeg.

  • U - IN parametar je parametar samo za čitanje.

  • OUT - To je parametar samo za pisanje

  • IZLAZNO - Parametar IN OUT je parametar čitanja i pisanja.

Evo jednostavnog primjera koji pokazuje kako koristimo funkcije u PL / SQL-u.

STVORI ILI ZAMIJENITE FUNKCIJU try_parse (iv_number IN VARCHAR2) BROJ POVRATKA POČINJE POVRATAK to_number (iv_number) OSIM KADA se drugi ONDA VRAĆAJU NULL END

Pozivanje funkcije

Pokušajmo pozvati funkciju koju smo napravili u anonimnom bloku u sljedećem primjeru.

PODEŠITE SERVEROUTP NA VELIČINI 1000000 PROGLAŠITE n_x broj n_y broj n_z broj POČINITE n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_x) LINK (N_x) LINK (N_x) n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

Funkciju možemo pozvati i u naredbi SELECT. Sad kad znamo kako možemo koristiti funkcije u PL / SQL, pokušajmo razumjeti kako radimo s procedurama u PL / SQL.

PL / SQL postupak

Postupak je u osnovi blok koji obavlja određeni zadatak. Korištenjem postupka možemo omotati ili uvrstiti složenu poslovnu logiku i ponovno ih koristiti u aplikacijskom sloju i sloju baze podataka.

Pogledajmo jednostavan primjer kako bismo razumjeli kako postupak radi u PL / SQL-u

IZRADI ILI ZAMIJENITE POSTUPAK prilagodite_platu (in_employee_id U ZAPOSLENIMA.EMPLOYEE_ID% TIP, in_procent U BROJU) POČINJE - ažurirati plaću zaposlenika AŽURIRATI zaposlenike SET plaća = plaća + plaća * in_percent / 100 WHERE zaposlenik_id = in_employee_id END

U gornjem primjeru imamo dva parametra, postupak prilagođava plaću za zadani postotak, a ključna riječ UPDATE ažurira vrijednost u informacijama o plaći.

Zaglavlje postupka

Odjeljak prije ključne riječi IS naziva se zaglavljem postupka. Slijedi nekoliko uputa s kojima se morate upoznati tijekom rada s postupcima.

  • shema - Neobavezno je ime sheme kojem postupak pripada.

  • Ime - Naziv postupka koji treba započeti glagolom.

  • parametri - To je neobavezna lista parametara.

  • AUTHID - Određuje hoće li se postupak izvršiti s privilegijom trenutnog korisnika ili izvornog vlasnika postupka.

Tijelo postupka

Sve što dolazi nakon ključne riječi IS naziva se tijelom procedure. Izjave o izjavi, iznimci i izvršenju imamo u tijelu postupka. Za razliku od funkcije, ključna riječ RETURN u postupku koristi se za zaustavljanje izvršavanja i vraćanje kontrole pozivatelju.

Pozivanje postupka

Pogledajmo kako možemo pozvati proceduru u PL / SQL.

EXEC_naziv_ime (param1, param2 & hellipparamN)

Postupke bez parametara možemo nazvati samo pomoću ključne riječi EXEC i naziva postupka. Sad kad znamo kako možemo raditi s procedurama, pokušajmo razumjeti kako se ugniježđeni blokovi koriste u PL / SQL-u.

Ugniježđeni blok

Ugniježđeni blok nije ništa drugo nego kombinacija jednog ili više PL / SQL blokova kako bi se dobila bolja kontrola nad izvršavanjem i izuzetno rukovanje programom.

Evo jednostavnog primjera ugniježđenog bloka.

POSTAVITE SERVEROUTP NA VELIČINI 1000000 DECLARE n_emp_id EMPLOYEES.EMPLOYEE_ID% TYPE: = & emp_id1 POČNITE PROGLAŠAVATI n_emp_id zaposlenici.employee_id% TYPE: = & emp_id2 v_name zaposlenici.first_name% TYPE_namePREPREZNO IME DBGPRE IME zaposlenika '|| n_emp_id ||' je '|| v_name) OSIM KADA no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Employee '|| n_emp_id ||' not found ') END END /

Vanjski PL / SQL blok u gornjem primjeru poznat je kao nadređeni blok ili zatvarajući blok, a unutarnji blok, s druge strane, poznat je kao podređeni blok ili zatvoreni blok.

Nije dobra ideja koristiti varijable s istim imenima u oba bloka jer će tijekom izvršavanja varijabla podređenog bloka nadjačati varijablu nadređenog bloka. To se događa jer PL / SQL daje prvi prioritet varijabli unutar vlastitog bloka.

Oznaka bloka

Ovaj problem možemo prevladati pomoću oznake bloka koja nam pomaže pomoću referenci na varijable unutar blokova pomoću oznake.

Evo jednostavnog primjera koji pokazuje kako možemo koristiti oznaku bloka.

 <>PROGLAŠITE ... POČINITE ... KRAJ

Korištenje oznake bloka pomaže u poboljšanju čitljivosti koda, stjecanju bolje kontrole i upućivanju na blokove. Sad kad znamo kako možemo raditi s ugniježđenim blokovima, pokušajmo razumjeti kako IF STATEMENT radi u PL / SQL-u.

IF Izjava

PL / SQL ima tri IZJAVE AKO

  • AKO TADA - To je najjednostavniji IF STATEMENT ako je uvjet istinit, izvršit će se izrazi, ako je uvjet netačan, ne čini ništa.

  • AKO-ONDA-OSTALO - U ovome se dodaje klauzula ELSE za alternativni slijed izjava.

  • AKO-ONDA-ELSEIF - Omogućuje nam izvršavanje više uvjeta ispitivanja u nizu.

AKO-ONDA Sintaksa

AKO uvjet THEN slijed_izvještaja END IF

AKO-ONDA-OSTALO Sintaksa

AKO UVJET ONDA slijed_akvih_izjava ELSE slijed_drugih_izjava END IF

AKO-ONDA-ELSEIF Sintaksa

AKO uvjet1 ZATIM slijed_izjava1 ELSIF uvjet2 ZATIM slijed_izjava2 OSTALO slijed_izvještaja3 ZAVRŠITI

Sad kad smo završili s IF STATEMENT, pogledajmo CASE izjavu u PL / SQL.

IZJAVA O SLUČAJU

Izraz CASE u osnovi pomaže u izvršavanju niza iskaza na temelju selektora. Selektor, u ovom slučaju, može biti bilo što, može biti varijabla, funkcija ili jednostavan izraz. Evo jednostavnog primjera za prikaz sintakse CASE izraza u PL / SQL-u.

[<>] SLUČAJ [ISTINA | selektor] KADA izraz1 ZATIM slijed_izjava1 KADA izraz2 ZATIM slijed_izvještaja2 ... KADA izrazN ZATIM slijed_izvještajaN [OSTALO slijed_izvještajaN + 1] ZAVRŠI SLUČAJ [ime_naznake]

U gornjoj sintaksi, iza ključne riječi CASE dolazi selektor. PL / SQL će selektor procijeniti samo jednom kako bi odredio koju izjavu treba izvršiti.

Iza izbornika slijedi ključna riječ WHEN. Ako izraz zadovoljava selektor, tada se izvršava odgovarajući izraz nakon ključne riječi THEN.

Sad kad znamo kako možemo koristiti CASE izjavu, pokušajmo razumjeti kako ćemo koristiti naredbe petlje u PL / SQL-u.

Izjava o petlji

Izvod petlje u PL / SQL-u je iterativni izraz koji vam omogućuje izvršavanje niza izraza više puta. Evo jednostavnog primjera za prikaz sintakse naredbe petlje u PL / SQL-u.

LOOP slijed_izvještaja END LOOP

Između ključne riječi LOOP i END LOOP mora postojati najmanje jedan izvršni izraz.

Petlja s EXIT izjavom

Izjave EXIT i EXIT kada omogućuju izlaz iz petlje. Izraz EXIT WHEN petlju završava uvjetno, dok EXIT bezuvjetno završava izvršenje.

LOOP ... EXIT KADA stanje END LOOP

Oznaka petlje

Oznaka petlje koristi se za kvalificiranje imena varijable brojača petlji kada se koristi u ugniježđenoj petlji. Slijedi sintaksa oznake petlje.

 <>Oznaka LOOP sequence_of_statements END LOOP

Sad kad znamo kako možemo koristiti izjave petlje, pogledajmo izjave petlje za bolje razumijevanje.

Dok Izjava petlje

Izjavu petlje WHILE možemo koristiti kada broj izvršavanja nije definiran dok izvršavanje ne započne. Sljedeća sintaksa koristi se za izraz WHILE petlje u PL / SQL-u.

WHILE uvjet LOOP sequence_of_statements END LOOP

Uvjet u sintaksi je logička vrijednost ili izraz koji procjenjuje na TRUE, FALSE ili NULL. Ako je uvjet TRUE, izvodi će se izvršiti, ako je FALSE, izvršenje se zaustavlja i kontrola ide na sljedeći izvršni izraz.

Sad kad znamo kako možemo koristiti naredbu petlje WHILE, pogledajmo naredbu FOR petlje.

Za Izjavu o petlji

Izjava petlje FOR u PL / SQL-u omogućuje nam izvršavanje niza naredbi određeni broj puta. Slijedi sintaksa korištenja naredbe FOR petlje u PL / SQL

FOR count_counter IN [REVERSE] lower_bound .. lower_bound LOOP sequence_of_statements END LOOP

PL / SQL automatski kreira lokalnu varijablu loop_counter s tipom podataka INTEGER za petlju, tako da je ne morate eksplicitno deklarirati. Donja granica..visoka veza je raspon u kojem petlja ponavlja. Također, morate imati barem jedan izvršni izraz između ključnih riječi LOOP i END LOOP.

Sad kad znamo kako možemo koristiti izjave petlje u PL / SQL, pogledajmo izuzetno rukovanje u PL / SQL.

Iznimno rukovanje

U PL / SQL-u bilo koja vrsta pogreške tretira se kao iznimka. Iznimka se može tretirati kao poseban uvjet koji može promijeniti ili izmijeniti tijek izvršenja. U PL / SQL-u postoje dvije vrste iznimaka.

  • Iznimka sustava - Povećava ga PL / SQL vrijeme izvođenja kada otkrije pogrešku.

  • Iznimka koju definiraju programeri - Te iznimke programer definira u određenoj aplikaciji.

Utvrđivanje iznimke

Iznimka u PL / SQL-u mora se prijaviti prije nego što se može pokrenuti. Izuzetak možemo definirati pomoću ključne riječi EXCEPTION kao što smo to učinili u donjem primjeru.

EXCEPTION_NAME EXCEPTION

Da bismo stvorili iznimku, koristimo ključnu riječ RAISE.

PODIZI EXCEPTION_NAME

Dakle, to je bilo sve o PL / SQL-u, nadam se da vam je ovaj članak pomogao u dodavanju vrijednosti vašem znanju. Za više informacija o SQL-u ili bazama podataka možete pogledati naš opsežni popis za čitanje ovdje: .

Ako želite dobiti strukturirani trening o MySQL-u, onda pogledajte naš koja dolazi s treningom uživo pod vodstvom instruktora i iskustvom u stvarnom životu. Ovaj trening pomoći će vam da dublje razumijete MySQL i postignete ovladavanje tom temom.

Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare ' Vodič za PL / SQL ”I javit ću vam se.