Как да създадете вложена таблица вътре в PL/SQL блок
Добре дошли във втория урок от серията PL/SQL Collection. В този урок ще научим първия тип колекция, която е „вложена таблица“. Таблица вътре в таблица е най-простата дефиниция, която човек може да измисли и е правилна във всяко едно отношение, защото таблица, която е вградена в друга таблица, е точно това, което подсказва името на вложена таблица.
Но ако трябва да дефинираме колекцията „Вложена таблица“ по по-изискан и технически начин, тогава можем да кажем, че вложените таблици са едномерни структури, които са постоянни и неограничени по природа. Те са достъпни в SQL, както и в PL/SQL и могат да се използват в таблици, записи и дефиниции на обекти. Тъй като това е неограничена PL/SQL колекция, следователно може да съдържа произволен брой елементи в произволно подреден набор.
Определение
Вложените таблици са едномерни структури, които са постоянни и неограничени по природа. Те са достъпни в SQL, както и в PL/SQL и могат да се използват в таблици, записи и дефиниции на обекти. Тъй като това е неограничена PL/SQL колекция, следователно може да съдържа произволен брой елементи в неподреден набор.
Препоръка за четене:Въведение в колекцията PL/SQL
Вложена таблица може да бъде създадена вътре в блока PL/SQL или в базата данни като обект от тип колекция (обект на схема). В случай на предишната вложена таблица се държи като едномерен масив без никакъв тип индекс или горна граница.
Така че за момента нека се концентрираме върху това как да създадем вложена таблица в PL/SQL блока и да оставим останалото за следващия урок.
Синтаксис за създаване на вложена таблица
DECLRE TYPE nested_table_name IS TABLE OF element_type [NOT NULL];
Обясних този синтаксис подробно в моя видео урок в моя канал в YouTube. Силно препоръчвам да прегледате този видеоклип.
Пример:Как да създадете вложена таблица в PL/SQL блок?
Следващият пример е само за демонстриране как се създава вложена таблица, няма нищо фантастично в това.
SET SERVEROUTPUT ON; DECLARE TYPE my_nested_table IS TABLE OF number; var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90); BEGIN DBMS_OUTPUT.PUT_LINE ('Value Stored at index 1 in NT is ' ||var_nt (1)); DBMS_OUTPUT.PUT_LINE ('Value Stored at index 2 in NT is ' ||var_nt (2)); DBMS_OUTPUT.PUT_LINE ('Value Stored at index 3 in NT is ' ||var_nt (3)); END; /
Примерът по-горе е много прост, в който създадохме вложена таблица и я нарекохме „my_nested_table“ (ред номер 3). В следващия ред (ред номер 4) създадохме екземпляр на същата колекция и я използвахме, за да инициализираме вложената таблица и да съхраняваме някои данни в нея. В секцията за изпълнение имаме достъп до съхранените данни поотделно, използвайки индексния номер, по същия начин, по който правехме в масивите.
Вместо ръчен достъп до данни един по един, използвайки индекс, можем да използваме цикли и да преминаваме през всеки елемент от вложената таблица на колекцията.
SET SERVEROUTPUT ON; DECLARE TYPE my_nested_table IS TABLE OF number; var_nt my_nested_table := my_nested_table (9,18,27,36,45,54,63,72,81,90); BEGIN FOR i IN 1..var_nt.COUNT LOOP DBMS_OUTPUT.PUT_LINE ('Value stored at index '||i||'is '||var_nt(i)); END LOOP; END; /
Това е друг пример за това как да създадем вложена таблица, в която преминаваме през данните и ги показваме обратно на потребителя с помощта на For Loop.
Това е всичко за това как да създавате вложени таблици в PL/SQL блокове. Останете на линия, тъй като в следващия урок ще научим как да създаваме вложени таблици като обекти за събиране на база данни и какви всички изгледи на речник с данни можете да използвате, за да получите информацията за вложените таблици, които се съхраняват във вашата база данни.
Това е всичко. Благодаря за четенето и приятен ден!