Въведение в 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 колекции заедно с предимствата. Можете също да разгледате следните статии, за да научите повече -
- Курсори в PL / SQL
- CASE оператор в PL / SQL
- Oracle PL / SQL Интервю въпроси
- PL / SQL команди