Tutorial PL / SQL: Tot ce trebuie să știți despre PL / SQL



Tutorialul PL / SQL acoperă toate explicațiile detaliate ale tuturor conceptelor necesare pentru stăpânirea programării PL / SQL cu diverse exemple

PL / SQL este un limbaj procedural care depășește neajunsurile cu care se confruntă Limbaj de interogare structurat . Este o extensie a SQL și putem folosi chiar interogări SQL fără probleme în orice aplicație sau program PL / SQL. În acest tutorial PL / SQL, vom trece prin conceptele de bază ale PL / SQL în detaliu. Următoarele subiecte sunt tratate în acest articol.

Ce este PL / SQL?

Reprezintă extensia limbajului procedural la limbaj de interogare structurat . Oracle a creat PL / SQL care extinde unele limitări ale SQL pentru a oferi o soluție mai cuprinzătoare pentru construirea de aplicații critice pentru misiune care rulează pe oracle .





logo-pl / sql tutorial - edureka

Caracteristici

  • PL / SQL oferă funcționalitatea unui limbaj procedural, cum ar fi luarea deciziilor, iterația etc.

  • Folosind o singură comandă, PL / SQL poate executa mai multe interogări.



    cum se creează fișiere jurnal în java
  • De asemenea, putem reutiliza unități PL / SQL, cum ar fi funcții, declanșatoare, proceduri etc., care sunt stocate în baza de date după creare.

  • PL / SQL are, de asemenea, un bloc de gestionare a excepțiilor care gestionează excepțiile din PL / SQL.

  • Verificarea extinsă a erorilor este, de asemenea, posibilă utilizând PL / SQL



  • Aplicațiile scrise în PL / SQL sunt portabile către alte hardware și sisteme de operare cu condiția ca Oracle să fie operațional.

PL / SQL vs SQL

SQL PL / SQL
SQL este o singură interogare care este utilizată pentru a efectua operațiuni DDL și DMLPL / SQL este un bloc de coduri care este utilizat pentru a defini un întreg program sau procedură / funcție etc.
Nu definește cu adevărat cum trebuie făcute lucrurile, mai degrabă definește ceea ce trebuie făcutPL / SQL definește modul în care trebuie făcute lucrurile
Execută o singură declarațieExecută simultan un bloc de declarații.
SQL este utilizat în principal pentru a manipula datelePL / SQL, pe de altă parte, este utilizat pentru a crea aplicații
Nu poate conține cod PL / SQLDeoarece este o extensie SQL, poate conține cod SQL în ea

Blocarea structurilor în PL / SQL

PL / SQL organizează de obicei codul în blocuri. Blocul de cod fără nume este cunoscut ca un bloc anonim. Este cunoscut sub numele de bloc anonim, deoarece nu este salvat în baza de date Oracle. Să aruncăm o privire la un bloc anonim din PL / SQL.

[DECLARE] declarații de declarație [BEGIN] declarații de execuție [EXCEPȚIE] declarații de excepție END /

Privind diagrama prezentată mai sus, putem vedea că structura blocului este împărțită în patru părți, adică declarație, început, excepție și sfârșit. Să încercăm să înțelegem cum funcționează structura blocului în PL / SQL. Dintre toate aceste secțiuni, secțiunea de execuție este obligatorie, iar restul sunt opționale.

  • DECLARA cuvântul cheie este folosit pentru secțiunea de declarație este utilizat pentru a declara tipuri de date și structuri precum variabile, funcții etc.

  • ÎNCEPE cuvântul cheie este utilizat pentru secțiunea de execuție. Este obligatoriu și conține toate declarațiile care trebuie executate. În acest bloc este definită logica de afaceri, putem folosi atât instrucțiuni procedurale, cât și instrucțiuni SQL în acest bloc.

  • EXCEPȚIE cuvântul cheie este utilizat pentru secțiunea de excepție. Conține toate declarațiile de excepție.

  • SFÂRȘIT cuvântul cheie marchează sfârșitul blocului, iar linia inversă „/” spune instrumentului pe care îl utilizați (Oracle Database Tool) pentru a executa blocul PL / SQL.

Iată un exemplu simplu pentru a arăta cum putem folosi codul PL / SQL.

ÎNCEPE NULL END /

Acum, că știm cum funcționează structura blocului în PL / SQL, să înțelegem diferitele aspecte ale PL / SQL, cum ar fi declararea, denumirea și atribuirea valorilor variabilelor.

Variabile PL / SQL

Variabila din PL / SQL este practic un nume care variază sau locația de stocare temporară care acceptă un anumit tip de date. Să aruncăm o privire la modul în care putem folosi variabilele într-un program PL / SQL.

Reguli de denumire variabilă

PL / SQL respectă următoarele reguli pentru denumirea variabilelor.

  • Variabila nu poate avea mai mult de 31 de caractere

  • Numele variabilei ar trebui să înceapă cu un caracter ASCII. Deoarece PL / SQL este sensibil la majuscule, majuscule și minuscule vor fi variabile diferite.

  • După primul caracter, trebuie să existe un caracter special ($, _) sau orice număr.

Convențiile de denumire

Utilizați următoarele convenții de denumire enumerate mai jos pentru a utiliza variabilele.

Prefix Tipul de date
v_VARCHAR2
n_NUMĂR
t_MASA
r_RÂND
d_DATA
b_BOOLEAN

Declaraţie

Să încercăm să înțelegem cum se face declarația variabilă în PL / SQL

Declarația include numele variabilei urmat de tipul de date și separat printr-un punct și virgulă. Următorul este un exemplu pentru a arăta cum puteți declara o variabilă în PL / SQL.

DECLARA v_name VARCHAR (25) n_age NUMBER (3) BEGIN NULL END

De asemenea, puteți adăuga lungimea tipului de date așa cum am făcut în exemplul de mai sus.

Ancore

Ancora se referă practic la utilizarea cuvântului cheie% TYPE care pentru a declara o variabilă cu tipul de date asociat cu tipul de date al unei coloane dintr-o anumită coloană dintr-un tabel.

Aruncați o privire la un exemplu pentru a înțelege acest lucru. Să presupunem că avem un tabel ANGAJAT, putem folosi ancorele în felul următor.

DECLARA v_name EMPLOYEE.NAME% TYPE n_age EMPLOYEE.AGE% TYPE BEGIN NULL END /

Misiune

Alocarea variabilelor este destul de ușoară, putem folosi operatorul de alocare pentru a atribui valori unei variabile. Următorul exemplu arată cum putem atribui valori unei variabile.

DECLARA v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /

Inițializare

Putem inițializa o valoare pentru variabilă și în secțiunea declarație. Următorul exemplu arată cum putem inițializa valorile la o variabilă.

DECLARA v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /

Acum, că știm cum putem lucra cu variabilele, să încercăm să înțelegem cum vom folosi funcțiile în PL / SQL.

Funcție în PL / SQL

O funcție din PL / SQL este practic un bloc numit care returnează o valoare. Este, de asemenea, cunoscut sub numele de subrutină sau subprogram, următoarea sintaxă arată cum putem folosi funcțiile în PL / SQL.

CREAȚI [SAU ÎNLOCUIȚI] FUNCȚIE nume_funcție [(parametru_1 [IN] [OUT] date_type, parametru_2 [IN] [OUT] data_type, parameter_N [IN] [OUT] data_type] RETURN return_data_type IS BEGIN statement return return_data_type EXCEPTION END /

În primul rând, trebuie să specificați un nume de funcție după cuvântul cheie. Numele funcției trebuie să înceapă cu un verb. O funcție poate avea nici unul, unul sau mai mulți parametri pe care îi specificăm în parametri. Trebuie să specificăm în mod explicit tipul de date al fiecărui parametru și apoi vine modul care poate fi una dintre următoarele.

  • IN - Parametrul IN este un parametru numai în citire.

  • OUT - Este un parametru numai pentru scriere

  • ÎN AFARĂ - Parametrul IN OUT este atât parametru citire-scriere.

Iată un exemplu simplu pentru a arăta cum folosim funcțiile în PL / SQL.

CREAȚI SAU ÎNLOCUIȚI FUNCȚIA try_parse (iv_number ÎN VARCHAR2) NUMĂRUL DE RETURARE ESTE ÎNCEPUT RETURNARE către_number (iv_number) EXCEPȚIE CÂND ALȚII APOI RETURNĂ NULL END

Apelarea unei funcții

Să încercăm să numim funcția pe care am făcut-o într-un bloc anonim în exemplul următor.

SET SERVEROUTPUT ON SIZE 1000000 DECLARE n_x number n_y number n_z number BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_x) DBMS n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

Putem apela funcția și într-o instrucțiune SELECT. Acum, că știm cum putem folosi funcțiile în PL / SQL, haideți să încercăm să înțelegem cum lucrăm cu procedurile din PL / SQL.

Procedura PL / SQL

O procedură este practic un bloc care face o sarcină specifică. Folosind o procedură putem înfășura sau încapsula logica de afaceri complexă și le putem refolosi atât în ​​stratul aplicației, cât și în baza de date.

Să aruncăm o privire la un exemplu simplu pentru a înțelege cum funcționează procedura în PL / SQL

CREAȚI SAU ÎNLOCUIȚI PROCEDURA adjust_salary (in_employee_id IN EMPLOYEES.EMPLOYEE_ID% TYPE, in_percent IN NUMBER) ESTE ÎNCEPUT - actualizați salariul angajatului ACTUALIZAȚI angajați SET salariu = salariu + salariu * in_percent / 100 WHERE employee_id = in_employee_id END

În exemplul de mai sus, avem doi parametri, procedura ajustează salariul cu un procent dat și cuvântul cheie UPDATE actualizează valoarea din informațiile salariale.

Antetul procedurii

Secțiunea dinaintea cuvântului cheie IS se numește antetul procedurii. Următoarele sunt câteva indicații pe care trebuie să le cunoașteți în timp ce lucrați cu proceduri.

  • schemă - Este numele opțional al schemei căreia îi aparține procedura.

  • Nume - Numele procedurii care ar trebui să înceapă cu un verb.

  • parametri - Este lista opțională de parametri.

  • AUTHID - Determină dacă procedura se va executa cu privilegiul utilizatorului actual sau al proprietarului inițial al procedurii.

Organismul procedurii

Tot ceea ce vine după cuvântul cheie IS se numește corpul procedurii. Avem declarațiile de declarație, excepție și execuție în corpul procedurii. Spre deosebire de funcție, cuvântul cheie RETURN într-o procedură este utilizat pentru a opri execuția și a returna controlul către apelant.

Apelarea unei proceduri

Să vedem cum putem apela o procedură în PL / SQL.

EXEC procedure_name (param1, param2 & hellipparamN)

Putem apela procedurile fără parametri folosind doar cuvântul cheie EXEC și numele procedurii. Acum, că știm cum putem lucra cu procedurile, să încercăm să înțelegem modul în care sunt utilizate blocurile imbricate în PL / SQL.

Bloc imbricat

Un bloc imbricat nu este altceva decât o combinație de unul sau mai multe blocuri PL / SQL pentru a obține un control mai bun asupra execuției și o manipulare excepțională pentru program.

Iată un exemplu simplu de bloc imbricat.

SET SERVEROUTPUT ON SIZE 1000000 DECLARE n_emp_id EMPLOYEES.EMPLOYEE_ID% TYPE: = & emp_id1 BEGIN DECLARE n_emp_id angajați.employee_id% TYPE: = & emp_id2 v_name angajați.first_name% TYPE BEGINemp_Nume_IMP_AUT_SEMPLE SELECT_nume_nume a angajatului „|| n_emp_id ||” este „|| v_name) EXCEPȚIE CÂND nu se găsesc date_DATĂ DBMS_OUTPUT.PUT_LINE („ Angajat ”|| n_emp_id ||„ nu a fost găsit ”) END END /

Blocul PL / SQL exterior din exemplul de mai sus este cunoscut sub numele de bloc părinte sau bloc de închidere, blocul interior, pe de altă parte, este cunoscut sub numele de bloc copil sau bloc închis.

Nu este o idee grozavă să folosiți variabilele cu aceleași nume în ambele blocuri, deoarece în timpul execuției variabila de bloc copil va înlocui variabila de bloc părinte. Se întâmplă deoarece PL / SQL acordă prima prioritate variabilei din propriul său bloc.

Etichetă bloc

Putem depăși această problemă cu eticheta de bloc care ne ajută să facem referiri la variabilele din blocuri folosind o etichetă.

Iată un exemplu simplu pentru a arăta cum putem folosi o etichetă bloc.

 <>DECLARA ... ÎNCEPE ... ÎNCHEIE

Utilizarea unei etichete de blocuri ajută la îmbunătățirea lizibilității codului, la un control mai bun și la referințe la blocuri. Acum, că știm cum putem lucra cu blocuri imbricate, haideți să încercăm să înțelegem cum funcționează DECLARAȚIA IF în PL / SQL.

Declarație IF

PL / SQL are trei afirmații IF

  • DACA ATUNCI - Este cea mai simplă DECLARAȚIE IF dacă condiția este adevărată, instrucțiunile se vor executa, dacă condiția este falsă, nu face nimic.

  • IF-THEN-ELSE - În aceasta, se adaugă clauza ELSE pentru o secvență alternativă de afirmații.

  • IF-THEN-ELSEIF - Ne permite să executăm mai multe condiții de testare într-o secvență.

Sintaxă IF-THEN

Condiția IF THEN sequence_of_statements END IF

Sintaxa IF-THEN-ELSE

Condiția IF THEN sequence_of_if_statements ELSE sequence_of_else_statements END IF

Sintaxa IF-THEN-ELSEIF

IF condition1 THEN sequence_of_statements1 ELSIF condition2 THEN sequence_of_statements2 ELSE sequence_of_statements3 END IF

Acum că am terminat cu DECLARAȚIA IF, să ne uităm la declarația CASE din PL / SQL.

Declarație de caz

Instrucțiunea CASE ajută practic la executarea unei secvențe de instrucțiuni bazate pe un selector. Un selector, în acest caz, poate fi orice, poate fi o variabilă, o funcție sau o expresie simplă. Iată un exemplu simplu pentru a arăta sintaxa declarației CASE în PL / SQL.

[<>] CAZ [ADEVĂRAT | selector] WHEN expression1 THEN sequence_of_statements1 WHEN expression2 THEN sequence_of_statements2 ... WHEN expressionN THEN sequence_of_statementsN [ELSE sequence_of_statementsN + 1] END CASE [label_name]

În sintaxa de mai sus, după cuvântul cheie CASE vine selectorul. PL / SQL va evalua selectorul o singură dată pentru a determina ce instrucțiune trebuie executată.

Urmat de selector este cuvântul cheie WHEN. Dacă expresia satisface selectorul, atunci se execută declarația corespunzătoare după THEN cuvânt cheie.

Acum, că știm cum putem folosi o instrucțiune CASE, să încercăm să înțelegem cum vom folosi instrucțiunile de buclă din PL / SQL.

Declarație de buclă

O instrucțiune buclă în PL / SQL este o instrucțiune iterativă care vă permite să executați o secvență de instrucțiuni de mai multe ori. Iată un exemplu simplu pentru a arăta sintaxa unei instrucțiuni de buclă în PL / SQL.

LOOP sequence_of_statements END LOOP

Trebuie să existe cel puțin o declarație executabilă între cuvântul cheie LOOP și END LOOP.

Buclați cu declarația EXIT

Instrucțiunile EXIT și EXIT when vă permit să ieșiți din buclă. Instrucțiunea EXIT WHEN termină bucla în mod condiționat, în timp ce EXIT termină necondiționat execuția.

LOOP ... IEȘI CÂND starea se termină LOOP

Etichetă buclă

O etichetă de buclă este utilizată pentru a califica numele variabilei contorului de buclă atunci când este utilizată într-o buclă imbricată. Urmează sintaxa unei etichete de buclă.

 <>LOOP sequence_of_statements Etichetă LOOP END

Acum, că știm cum putem folosi instrucțiunile de buclă, permiteți-ne să aruncăm o privire asupra instrucțiunilor de buclă while pentru o mai bună înțelegere.

În timp ce declarația de buclă

Putem folosi instrucțiunea buclă WHILE atunci când numărul de execuții nu este definit până când începe execuția. Următoarea sintaxă este utilizată pentru o instrucțiune de buclă WHILE în PL / SQL.

CÂND starea LOOP secvența_declarațiilor END LOOP

Condiția din sintaxă este o valoare sau expresie booleană care se evaluează ca fiind TRUE, FALSE sau NULL. Dacă condiția este ADEVĂRATĂ, instrucțiunile vor fi executate, dacă este FALSĂ, execuția se oprește și controlul trece la următoarea instrucțiune executabilă.

Acum, că știm cum putem folosi o instrucțiune buclă WHILE, să aruncăm o privire asupra instrucțiunii buclă FOR.

Pentru declarația buclei

O instrucțiune buclă FOR în PL / SQL ne permite să executăm o secvență de instrucțiuni de un număr definit de ori. Urmează sintaxa de a utiliza instrucțiunea de buclă FOR în PL / SQL

PENTRU loop_counter ÎN [REVERSE] lower_bound .. lower_bound LOOP sequence_of_statements END LOOP

PL / SQL creează o variabilă locală loop_counter automat cu un tip de date INTEGER pentru buclă, astfel încât să nu fie necesar să o declarați în mod explicit. Lowerbound..higherbound este intervalul peste care iterează bucla. De asemenea, trebuie să aveți cel puțin o declarație executabilă între cuvintele cheie LOOP și END LOOP.

Acum, că știm cum putem folosi instrucțiunile de buclă în PL / SQL, haideți să aruncăm o privire asupra gestionării excepționale în PL / SQL.

Manevrare excepțională

În PL / SQL, orice fel de eroare este tratată ca o excepție. O excepție poate fi tratată ca o condiție specială care poate schimba sau modifica fluxul de execuție. În PL / SQL, există două tipuri de excepții.

  • Excepție de sistem - Este ridicat de timpul de execuție PL / SQL atunci când detectează o eroare.

  • Excepție definită de programator - Aceste excepții sunt definite de programator într-o anumită aplicație.

Definirea unei excepții

O excepție în PL / SQL trebuie declarată înainte de a putea fi ridicată. Putem defini excepția folosind cuvântul cheie EXCEPTION așa cum am făcut în exemplul de mai jos.

EXCEPTION_NAME EXCEPTION

Pentru a ridica o excepție, folosim cuvântul cheie RAISE.

RIDICAȚI EXCEPTION_NAME

Deci, totul a fost despre PL / SQL, sper că acest articol te-a ajutat să adaugi valoare cunoștințelor tale. Pentru mai multe informații despre SQL sau baze de date, puteți consulta lista noastră de lectură cuprinzătoare aici: .

Dacă doriți să obțineți un training structurat despre MySQL, atunci consultați care vine cu instruire live condusă de instructor și experiență de proiect din viața reală. Această instruire vă va ajuta să înțelegeți în profunzime MySQL și vă va ajuta să obțineți stăpânirea asupra subiectului.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii din ” Tutorial PL / SQL ”Și mă voi întoarce la tine.