Въведение в PL / SQL колекции

На първо място, подобно на други съвременни езици за програмиране, PL / SQL също предоставя възможност на програмистите да използват PL / SQL колекции. Така че, най-общо казано, колекцията представлява структура от данни с подредена група елементи от един и същ тип данни и тези елементи се осъществяват чрез индекси в съответствие със специфичните изисквания. Най-често използваните колекции в повечето от програмните езици са масиви, набор, списък и опашка и т.н.

Колекцията PL / SQL предоставя много предимства както за програмиста, така и за потребителя, докато съхранява и осъществява достъп до данните от подобни типове данни в приложение. Когато има нужда от обработка на данните наведнъж или обработка на голям обем данни, PL / SQL колекциите са много полезни. Освен това намалява размера и скоростта на обработка, като същевременно съхранява данните и осъществява достъп до елементите. Елементите в колекциите могат да бъдат лесно достъпни чрез бримки и индекси. За разлика от масиви в други езици за програмиране, PL / SQL поддържа само едномерни колекции и данните в колекциите се идентифицират от абонатите (наричан също индекс на други езици). Всеки елемент се осъществява и обработва чрез този уникален индекс.

Видове PL / SQL колекции

PL / SQL колекциите са от 3 типа, които са дадени по-долу със синтаксис:

Вложени таблици

Вложена таблица е PL / SQL колекция, в която размерът не е фиксиран. Така че, това е като едноизмерен масив, с изключение на факта, че размерът е фиксиран в масиви и може да бъде плътен и рядък и двете. Програмистът трябва да разширява паметта всеки път, преди да го използва с помощта на подписка EXTEND в таблицата на вложените файлове, започва с цяло число „1“.

Вложени таблици попадат в устойчиви PL / SQL колекции, което означава, че те могат да бъдат използвани повторно, като се съхраняват в базата данни. Програмистът може също така да изтрие елемент от масив и да направи таблицата оскъдна, което означава, че вложени таблици могат да бъдат както плътни, така и оскъдни. Вложените таблици могат да бъдат декларирани или в блока PL / SQL, или на ниво схема.

Тъй като няма ограничение за горния размер в Nested таблиците, те попадат в категорията на Unbounded PL / SQL колекции.

Синтаксис:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Променливи масиви или VARRAY

VARRAY е колекцията PL / SQL, в която размерът на колекцията е фиксиран, както е дефинирано в нейната дефиниция, така че VARRAY се наричат ​​ограничени елементи в масивите се попълват последователно, като се започне от индекса 1. За разлика от вложени таблици, вариращите осигуряват по-малка гъвкавост, тъй като са плътни само. Така че програмистът не може да изтрие нито един елемент между тях, нито един цял варира е изтрит или може да бъде отрязан от края. Достъп до променливите трябва да се съхранява последователно. Тя може да бъде дефинирана или в блока PL / SQL, или в схемата. Подобно на вложени таблици, вариращите попадат в категорията на устойчиви колекции, така че да могат да бъдат използвани повторно и съхранявани в базата данни.

Синтаксис:

TYPE typ_name IS VARRAY OF element_data_type;

Асоциативни масиви

Както подсказва името, асоциативни масиви се използват за задържане на стойностите в двойки ключ-стойност. Използваният ключ може да бъде тип низ или цяло число. Асоциативните масиви също се наричат ​​индекс-по таблица. Тази колекция може да бъде гъста или рядка. В асоциативните масиви размерът на масива не е фиксиран в старта и програмистът не трябва да ги инициализира преди да го използва. Асоциативният масив попада в категорията на непостоянните колекции, което означава, че те не се съхраняват в базата данни и не могат да бъдат използвани повторно, така че те са дефинирани в PL / SQL блока и се използват само в тази конкретна сесия. Тези масиви са под категорията на неограничени колекции.

Синтаксис:

TYPE typ_name IS TABLE OF element_data_type;

Методи за събиране

PL / SQL предоставя някои предварително дефинирани методи, за да се улесни работата с колекции. Някои от методите са дадени по-долу:

S.No.Име на методаописание
1.БРОЯВръща броя на присъстващите елементи в колекцията
2.ПЪРВИТой връща най-малкия (първи) номер на индекса в колекцията за цели числа абонати
3.LASTТой връща най-големия (последен) номер на индекса в колекцията за цели числа абонати.
4.СЪЩЕСТВУВА (п)Използва се за проверка дали определен елемент присъства в колекцията или не. Тя връща ИСТИНСКО, ако n-те елементи присъстват в колекцията, FALSE, ако не.
5.Предшестващо (п)Той връща номера на индекса, който е предшественик на индекса (n), даден от потребителя в колекцията.
6.СЛЕДВАЩАТА (п)Той връща номера на индекса, който е наследник на индекса (n), даден от потребителя в колекцията.
7.TRIMИзползва се за премахване на елементи от колекцията. TRIM премахва последния елемент от колекцията, а TRIM (n) премахва последния n елемент от края на колекцията.
8.ИЗТРИЙИзползва се за премахване на всички елементи от дадената колекция. Той задава броя на колекциите на 0 след отстраняване на всички елементи
9.DELETE (m, п)Използва се в случай на асоциативни масиви и индексирани таблици за премахване на всички елементи в диапазона от m до n. Връща нула, ако m е по-голямо от n.
10.LIMITИзползва се за проверка на максималния размер на колекцията.

Изключения от колекцията

Дадено по-долу са някои от изключенията, които най-вероятно ще възникнат по време на работа със колекции.

Име на изключениеСценарий, при който възниква изключение
NO_DATA_FOUNDИзключение възниква, когато подпис, отнасящ се за елемент, който е изтрит и вече не съществува.
VALUE_ERRORИзключението се случва, когато стойността на колоните, които се опитват да получат достъп, е неконвертируема към типа ключ или когато подписът е нулев
COLLECTION_IS_NULLИзключение възниква при работа върху автоматично нулева колекция
SUBSCRIPT_BEYOND_CO UNTИзключение възниква, когато един индекс надвишава максималния брой на редица елементи в колекцията.
SUBSCRIPT_OUTSIDE_LIM ITИзключението възниква при опит за препращане чрез използване на номера на индекса, който е извън законния диапазон.
TOO_MANY_ROWSИзключение възниква, когато SELECT в оператора връща повече от 1 ред.

Предимства на колекциите в PL / SQL

Някои от предимствата на PL / SQL колекциите са дадени по-долу:

  • Освен това, едно от най-големите предимства на колекциите е, че подобрява производителността на системата чрез кеширане на статичните данни, до които трябва да се осъществява редовен достъп.
  • Най-важното е, че колекциите са полезни, когато работите с големия набор от данни, които имат един и същ тип данни, на които потребителят трябва да извърши множество DML операции.
  • Използвайки една променлива колекция можем да намалим множеството числа променливи, използвани за съхраняване на различни стойности и по този начин да запазим паметта.
  • Извършването на различни операции като съхраняване и обработка на данни става лесно чрез вече предоставените PL / SQL методи за събиране.

заключение

Чрез горното описание можете да получите представа за това какво представлява PL / SQL колекцията и методите, които могат да се използват в PL / SQL колекциите. Преди да използвате PL / SQL тип колекция в програмата, разработчикът трябва да обмисли задълбочено сценария, преди да избере какъвто и да е тип. Въпреки че работата в PL / SQL колекции не е трудна, но могат да възникнат определени изключения в различни точки, които програмистът трябва да знае и знае как да се справи с тях.

Препоръчителни статии

Това е ръководство за PL / SQL колекции. Тук обсъждаме синтаксиса, типовете, методите и изключенията на PL / SQL колекции заедно с предимствата. Можете също да разгледате следните статии, за да научите повече -

  1. Курсори в PL / SQL
  2. CASE оператор в PL / SQL
  3. Oracle PL / SQL Интервю въпроси
  4. PL / SQL команди