Вступ до колекцій 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, а також переваги. Ви також можете переглянути наступні статті, щоб дізнатися більше -
- Курсори в PL / SQL
- Оператор CASE в PL / SQL
- Питання щодо інтерв'ю Oracle PL / SQL
- PL / SQL Команди