Uvod u PL / SQL kolekcije

Prije svega, poput ostalih modernih programskih jezika, PL / SQL programerima također pruža mogućnost korištenja PL / SQL kolekcija. Dakle, općenito govoreći, zbirka je struktura podataka s uređenom grupom elemenata iste vrste podataka i tim se elementima pristupa putem indeksa prema posebnim zahtjevima. Kolekcije koje se najčešće koriste u većini programskih jezika su Arrays, Set, List i Queue, itd.

Zbirka PL / SQL pruža mnoštvo prednosti i programeru i korisniku dok pohranjuje i pristupa podacima sličnih tipova podataka u aplikaciji. Kada postoji potreba da obradite podatke odjednom ili rukujete velikom količinom podataka, PL / SQL zbirke su vrlo korisne. Također smanjuje veličinu i brzinu obrade tijekom pohrane podataka i pristupa elementima. Elementima u zbirkama može se pristupiti lako kroz petlje i indekse. Za razliku od nizova u drugim programskim jezicima, PL / SQL podržava samo jednodimenzionalne kolekcije, a podaci u zbirkama identificiraju se pomoću pretplatnika (koji se u drugim jezicima nazivaju i indeks). Svakom se elementu pristupa i obrađuje kroz ovaj jedinstveni podpis.

Vrste zbirki PL / SQL

PL / SQL zbirke su 3 vrste koje su u nastavku navedene sa sintaksom:

Gnijezdane tablice

Gnijezdana tablica je PL / SQL zbirka u kojoj veličina nije fiksna. Dakle, to je poput jednodimenzionalnog niza, osim činjenice da je veličina fiksirana u nizovima i može biti gusta i rijetka. Programer treba svaki put proširiti memoriju prije nego što ga upotrebljava pomoću pretplate EXTEND u tablici ugniježđenih brojeva započinje s cijelim brojem '1'.

Unesene tablice nalaze se u postojanim PL / SQL kolekcijama, što znači da ih je moguće ponovo koristiti kao pohranjene u bazi podataka. Programer također može izbrisati element array-a i napraviti tablicu rijetkom, što znači da unesene tablice mogu biti i guste i rijetke. Unesene tablice mogu se deklarirati bilo unutar PL / SQL bloka bilo na razini sheme.

Kako nema ograničenja za gornju veličinu u Nested tablicama, oni spadaju u kategoriju Unbounded PL / SQL zbirke.

Sintaksa:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Promjenjivi veličine ili VARRAY-i

VARRAY je PL / SQL kolekcija u kojoj je veličina kolekcije fiksirana kako je definirano u njenoj definiciji, tako da se VARRAY-i nazivaju ograničeni elementi u nizovima se nabiraju redovno počevši od pretpisa 1. Za razliku od unesenih tablica, varrays pruža manju fleksibilnost jer su guste samo. Dakle, programer ne može izbrisati nijedan element između, bilo je izbrisan cijeli varray ili ga se može obrezati do kraja. Pristupi i pohranjivanju nizova mora se slijediti uzastopno. Može se definirati bilo unutar PL / SQL bloka ili na razini sheme. Kao i ugniježđene tablice, varrays spada u kategoriju postojanih kolekcija tako da se mogu ponovno koristiti i pohraniti u bazu podataka.

Sintaksa:

TYPE typ_name IS VARRAY OF element_data_type;

Asocijativni nizovi

Kao što ime sugerira, asocijativni nizovi se koriste za držanje vrijednosti u parovima ključ-vrijednost. Ključ koji se koristi može biti bilo niz ili cijeli broj. Asocijativni nizovi nazivaju se i indeks po tablici. Ova zbirka može biti gusta ili rijetka. U asocijativnim nizovima veličina niza nije fiksirana u startu i programer ih ne mora inicijalizirati prije nego što ih koristi. Asocijativni niz spada u kategoriju nestabilnih zbirki, što znači da se ne pohranjuju u bazu podataka i ne mogu ih ponovo upotrijebiti, tako da su definirani unutar PL / SQL bloka i koriste se samo u toj određenoj sesiji. Ovi nizovi spadaju u kategoriju neograničenih zbirki.

Sintaksa:

TYPE typ_name IS TABLE OF element_data_type;

Metode prikupljanja

PL / SQL pruža neke unaprijed definirane metode za lakši rad s kolekcijama. Neke od metoda date su u nastavku:

S.No.Naziv metodeOpis
1.RAČUNATIVraća broj elemenata prisutnih u kolekciji
2.PRVIVraća najmanji (prvi) indeksni broj u zbirci za cjelobrojne pretplate
3.POSLJEDNJIVraća najveći (zadnji) indeksni broj u zbirci za cjelobrojne pretplate.
4.EXISTS (n)Koristi se za provjeru je li određeni element prisutan u kolekciji ili ne. Vraća TRUE ako su u kolekciji prisutni n-ti elementi, FALSE ako nisu.
5.Stanje (n)Vraća indeksni broj koji je prethodnik indeksa (n) koji je dao korisnik u zbirci.
6.NEXT (n)Vraća broj indeksa koji je nasljednik indeksa (n) koji je dao korisnik u zbirci.
7.TRIMKoristi se za uklanjanje elemenata iz kolekcije. TRIM uklanja posljednji element iz kolekcije, a TRIM (n) uklanja posljednji n element s kraja kolekcije.
8.IZBRISATIKoristi se za uklanjanje svih elemenata iz dane kolekcije. Postavlja broj zbirki na 0 nakon uklanjanja svih elemenata
9.DELETE (m, n)Koristi se u slučaju asocijativnih nizova i indeksiranih tablica za uklanjanje svih elemenata u rasponu od m do n. Vraća se nula ako je m veći od n.
10.OGRANIČITIKoristi se za provjeru maksimalne veličine kolekcije.

Izuzeci iz zbirke

Sljedeće su neke iznimke koje će se najvjerojatnije pojaviti tijekom rada sa kolekcijama.

Naziv izuzećaScenarij u kojem nastaje Izuzetak
NO_DATA_FOUNDIznimka nastaje kada pretplata koja se odnosi na element koji je izbrisan i više ne postoji.
VALUE_ERRORIzuzetak se događa kada vrijednost stupaca koji pokušavaju pristupiti ne može biti konvertibilna u tipku ključa ili kada je pretplatnik null
COLLECTION_IS_NULLIznimka nastaje radom na automatski null kolekciji
SUBSCRIPT_BEYOND_CO UNTIzuzetak nastaje kada pretplatnik premaši maksimalno brojanje broja elemenata u zbirci.
SUBSCRIPT_OUTSIDE_LIM ITIzuzetak nastaje pri pokušaju referenciranja pomoću indeksnog broja koji je izvan zakonskog raspona.
TOO_MANY_ROWSIzuzetak nastaje kada SELECT u izvod vrati više od 1 retka.

Prednosti kolekcija u PL / SQL

Neke od prednosti PL / SQL kolekcija date su u nastavku:

  • Pored toga, jedna od najvećih prednosti zbirke je ta što poboljšava performanse sustava spremanjem u spremanje statičkih podataka kojima treba redovito pristupiti.
  • Najvažnije je da su zbirke korisne za rad s velikim skupovima podataka koji imaju istu vrstu podataka na kojima korisnik treba izvesti više DML operacija.
  • Korištenjem jedne varijable za prikupljanje možemo smanjiti više brojeva varijabli koje se koriste za pohranu različitih vrijednosti i na taj način uštedjeti memoriju.
  • Izvođenje različitih operacija poput spremanja i obrade podataka postaje jednostavno kroz već dostupne PL / SQL metode prikupljanja.

Zaključak

Kroz gornji opis možete dobiti predodžbu o tome što je PL / SQL kolekcija i o metodama koje se mogu koristiti u PL / SQL kolekcijama. Prije upotrebe bilo kojeg tipa PL / SQL zbirke u programu, programer treba prije razmišljanja o scenariju prije nego što odabere bilo koju vrstu. Iako rad u PL / SQL kolekcijama nije težak, ali mogu se pojaviti određene iznimke u različitim točkama kojih programer mora biti svjestan i zna se nositi s njima.

Preporučeni članci

Ovo je vodič za PL / SQL zbirke. Ovdje smo raspravljali o sintaksi, vrstama, metodama i iznimkama PL / SQL kolekcija, zajedno s prednostima. Možete pogledati i sljedeće članke da biste saznali više -

  1. Kursori u PL / SQL
  2. Izjava CASE u PL / SQL
  3. Oracle PL / SQL pitanja za intervju
  4. PL / SQL naredbe

Kategorija: