Вступ до колекцій 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, або на рівні схеми.

Оскільки у вкладених таблицях немає обмежень на верхній розмір, вони підпадають під категорію колекцій 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.ОСТАННІВін повертає найбільший (останній) індексний номер у колекції для цілих підписок.
4.ВИСТАВКИ (n)Він використовується для перевірки того, чи присутній певний елемент у колекції чи ні. Він повертає TRUE, якщо n-ті елементи присутні в колекції, FALSE якщо ні.
5.PRIOR (n)Він повертає номер індексу, який є попередником індексу (n), наданим користувачем у колекції.
6.НАСТУПНИЙ (n)Він повертає номер індексу, який є спадкоємцем індексу (n), наданим користувачем у колекції.
7.TRIMВін використовується для видалення елементів з колекції. TRIM видаляє останній елемент із колекції, а TRIM (n) видаляє останній n елемент з кінця колекції.
8.УДАЛИТИВін використовується для видалення всіх елементів із даної колекції. Він встановлює кількість колекцій на 0 після видалення всіх елементів
9.УДАЛИТИ (м, п)Він використовується у випадку асоціативних масивів та індексованих таблиць для видалення всіх елементів у діапазоні від m до n. Повертається до нуля, якщо m більше n.
10.ОБМЕЖЕННЯВін використовується для перевірки максимального розміру колекції.

Винятки з колекції

Нижче наведено деякі винятки, які найімовірніше можуть виникнути під час роботи з колекціями.

Назва виняткуСценарій, за якого виникає Виняток
ДАНИХ НЕ ЗНАЙДЕНОВиняток виникає, коли підписка, що посилається на елемент, який видаляється і вже не існує.
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 Команди