Introducere în colecțiile PL / SQL

În primul rând, ca și celelalte limbaje de programare moderne, PL / SQL oferă și programatorilor posibilitatea de a utiliza colecțiile PL / SQL. Deci, în termeni generali, colecția este o structură de date având un grup ordonat de elemente de același tip de date, iar aceste elemente sunt accesate prin indexuri conform cerințelor specifice. Colecțiile utilizate frecvent în majoritatea limbajelor de programare sunt Arrays, Set, List și Queue etc.

Colecția PL / SQL oferă o mulțime de avantaje atât pentru programator cât și pentru utilizator în timp ce stochează și accesează datele de tipuri de date similare într-o aplicație. Atunci când este necesară procesarea datelor simultan sau manipularea unei cantități mari de date, colecțiile PL / SQL sunt foarte utile. De asemenea, reduce dimensiunea și viteza de procesare în timp ce stochează datele și accesează elementele. Elementele din colecții pot fi accesate ușor prin bucle și indexuri. Spre deosebire de matricile din alte limbaje de programare, PL / SQL acceptă doar colecții unidimensionale, iar datele din colecții sunt identificate prin abonamente (numite și index în alte limbi). Fiecare element este accesat și procesat prin acest abonament unic.

Tipuri de colecții PL / SQL

Colecțiile PL / SQL sunt de 3 tipuri care sunt date mai jos cu sintaxa:

Mese cuibărite

Un tabel cuibărit este o colecție PL / SQL în care dimensiunea nu este fixată. Deci, este ca un tablou unidimensional, cu excepția faptului că dimensiunea este fixată în tablouri și poate fi densă și redusă ambele. Programatorul trebuie să extindă memoria de fiecare dată înainte de a o folosi folosind EXTEND Subscript în tabelul Cuibărit, începe cu un număr întreg "1".

Tabelele cuiburi sunt incluse în colecțiile PL / SQL persistente, ceea ce înseamnă că pot fi reutilizate în continuare, stocate în baza de date. Programatorul poate șterge, de asemenea, un element de matrice și poate reduce tabelul, ceea ce înseamnă că tabelele amplasate pot fi atât dense, cât și reduse. Tabelele amplasate pot fi declarate fie în blocul PL / SQL, fie la nivel de schemă.

Întrucât nu există nicio limită la dimensiunea superioară în tabelele Cuiburi, acestea se încadrează în categoria colecțiilor PL / SQL nelimitate.

Sintaxă:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Arrayuri variabile sau dimensiuni VARRAY

VARRAY este colecția PL / SQL în care dimensiunea colecției este fixată așa cum este definită în definiția ei, astfel încât VARRAY-urile sunt numite elemente delimitate în tablouri sunt populate secvențial pornind de la subscriptul 1. Spre deosebire de tabelele cuiburi, varrays oferă o flexibilitate mai mică, deoarece acestea sunt dense numai. Deci programatorul nu poate șterge niciun element între ele, fie întregul varray este șters sau poate fi tăiat de la capăt. Varrays trebuie accesat și păstrat secvențial. Poate fi definit fie în interiorul blocului PL / SQL, fie la nivelul schemelor. Ca și tabelele cuibărite, varrays se încadrează în categoria colecțiilor persistente, astfel încât acestea să poată fi reutilizate și stocate la baza de date.

Sintaxă:

TYPE typ_name IS VARRAY OF element_data_type;

Arrayuri asociative

După cum sugerează și numele, matricile asociative sunt utilizate pentru a reține valorile în perechi cheie-valoare. Cheia folosită poate fi fie un tip string sau un număr întreg. Matricele asociative sunt de asemenea numite tabel Index-by. Această colecție poate fi densă sau redusă. În tablele asociative, dimensiunea tabloului nu este fixată la început și programatorul nu trebuie să le inițializeze înainte de a o utiliza. Un tablou asociativ intră în categoria colecțiilor care nu persistă, ceea ce înseamnă că nu sunt stocate în baza de date și nu pot fi reutilizate, astfel încât acestea sunt definite în blocul PL / SQL și sunt utilizate doar în acea sesiune particulară. Aceste tablouri se încadrează în categoria colecțiilor nelimitate.

Sintaxă:

TYPE typ_name IS TABLE OF element_data_type;

Metode de colectare

PL / SQL oferă câteva metode predefinite pentru a facilita lucrul cu colecțiile. Unele dintre aceste metode sunt prezentate mai jos:

S.No.Numele metodeiDescriere
1.NUMARAReturnează numărul de elemente prezente în colecție
2.PRIMULAcesta returnează cel mai mic (primul) număr de index din colecție pentru abonamente întregi
3.ULTIMULAcesta returnează cel mai mare (ultimul) număr de index din colecție pentru abonamente întregi.
4.EXISTS (n)Este utilizat pentru a verifica dacă un anumit element este prezent sau nu în colecție. Se returnează ADEVĂR dacă sunt prezenți al nouălea element în colecție, FALSE dacă nu.
5.PRIOR (n)Acesta returnează numărul indexului care este predecesorul indexului (n) dat de utilizator în colecție.
6.NEXT (n)Acesta returnează numărul indexului care este succesorul indexului (n) dat de utilizator în colecție.
7.TUNDEEste folosit pentru a elimina elemente din colecție. TRIM elimină ultimul element din colecție și TRIM (n) elimină ultimul n element de la sfârșitul colecției.
8.ȘTERGEEste utilizat pentru a elimina toate elementele din colecția dată. Setează numărul de colecții la 0 după îndepărtarea tuturor elementelor
9.ØTERGERE (m, n)Se folosește în cazul tablelor asociative și tabelelor indexate pentru a elimina toate elementele din intervalul de la m la n. Se întoarce nul dacă m este mai mare decât n.
10.LIMITĂEste utilizat pentru a verifica dimensiunea maximă a colecției.

Excepții de colectare

Mai jos sunt prezentate câteva dintre excepțiile care pot apărea în timp ce lucrați cu colecții.

Numele de excepțieUn scenariu în care apare Excepția
NU S-AU GASIT DATEO excepție apare atunci când un abonament care se referă la un element care este șters și nu mai există.
VALUE_ERRORExcepția apare atunci când valoarea coloanelor care încearcă să acceseze nu este convertibilă la tipul de cheie sau când un abonament este nul
COLLECTION_IS_NULLExcepție apar la lucrul la o colecție nulă automat
SUBSCRIPT_BEYOND_CO UNTO excepție apare atunci când un abonament depășește numărul maxim al unui număr de elemente din colecție.
SUBSCRIPT_OUTSIDE_LIM ITExcepția apare atunci când încercați să faceți referință folosind numărul de index care se află în afara domeniului legal.
TOO_MANY_ROWSO excepție apare atunci când un SELECT în instrucțiune returnează mai mult de 1 rând.

Avantajele colecțiilor în PL / SQL

Unele dintre avantajele colecțiilor PL / SQL sunt prezentate mai jos:

  • În plus, unul dintre cele mai mari avantaje ale colecțiilor este că îmbunătățește performanțele sistemului prin introducerea în cache a datelor statice care trebuie accesate în mod regulat.
  • Cel mai important, colecțiile sunt utile în timp ce lucrează cu setul mare de date având același tip de date pe care utilizatorul trebuie să efectueze mai multe operații DML.
  • Folosind o variabilă de colecție putem reduce mai multe numere de variabile utilizate pentru stocarea diferitelor valori și, prin urmare, salvarea memoriei.
  • Efectuarea diferitelor operații precum stocarea și procesarea datelor devine ușoară prin metode de colectare PL / SQL deja furnizate.

Concluzie

Prin descrierea de mai sus, vă puteți face o idee despre ce este colecția PL / SQL și metodele care pot fi utilizate în colecțiile PL / SQL. Înainte de a folosi orice tip de colecție PL / SQL din program, dezvoltatorul trebuie să se gândească mai întâi la scenariu înainte de a alege orice tip. Deși lucrul în colecțiile PL / SQL nu este dificil, dar pot apărea anumite excepții în diferite puncte de care programatorul trebuie să știe și să știe cum să le facă față.

Articole recomandate

Acesta este un ghid pentru Colecțiile PL / SQL. Aici discutăm sintaxa, tipurile, metodele și excepțiile colecțiilor PL / SQL împreună cu avantajele. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Cursoare în PL / SQL
  2. Instrucțiune CASE în PL / SQL
  3. Întrebări de interviu Oracle PL / SQL
  4. Comenzi PL / SQL