Днес ще направим практическа демонстрация, за да научим как да създадете VARRAY в Oracle Database, така че не се колебайте да посетите последния урок за всички необходими теории за VARRAY. Както винаги ще се опитам да запазя примера възможно най-прост. Така че, ако сте нов в програмирането, не се притеснявайте, разбрах ви!
По-рано обсъдихме във въведението на PL/SQL VARRAY, че като вложени таблици VARRAY могат да бъдат създадени
- Като член на PL/SQL Block и
- Като обект на база данни.
Днес ще научим как да създаваме VARRAY като член на блока PL/SQL и ще оставим останалото за бъдещите уроци.
Стъпка 1:Дефинирайте променлива вътре в PL/SQL блок
Можете да дефинирате променлива само в секцията за декларация на PL/SQL блок.
SET SERVEROUTPUT ON; DECLARE TYPE inBlock_vry IS VARRAY (5) OF NUMBER;
В горния код създадохме VARRAY и го кръстихме inBlock_vry. Тази променлива може да съдържа 5 елемента от тип данни Number.
Стъпка 2:Инициализирайте променливата
Инициализирането на променлива може лесно да се извърши с помощта на колекция променлива. За да инициализираме VARRAY, първо ще дефинираме колекция променлива и след това ще я използваме за инициализиране.
vry_obj inBlock_vry := inBlock_vry();
В горния код създадохме колекция променлива с име vry_obj и я използвахме, за да инициализираме променливата inBlock_vry.
Информация:
Някои книги наричат колекция променлива като обект на колекция, така че, моля, не се бъркайте, тъй като и двете са еднакви .
Стъпка 3:Как да вмъкнете данни в VARRAY
Вмъкването на данни в променливата е много подобно на вмъкването на данни в масива на друг език за програмиране. Можете да вмъкнете данни или директно във всяка клетка на променливата, като използвате индексния номер, или можете да използвате LOOP за попълване на променливата.
Как да вмъкна данни в VARRAY с помощта на индекса на клетката
Както знаем, структурата на клетъчната PL/SQL колекция се състои от клетка с индекс, наречен индекс. Можем да използваме този индекс за вмъкване на данните в променливата.
BEGIN vry_obj.EXTEND(5); vry_obj(1):= 10*2; DBMS_OUTPUT.PUT_LINE(vry_obj(1)); END; /
Секция за изпълнение -1
В горния код написахме секцията за изпълнение на блока PL/SQL. Състои се от 3 изпълними оператора. Тези три твърдения са –
Ред 6:Изявление 1
Първият израз е извикване на процедура EXTEND. В това изявление ние разпределяме паметта на всяка клетка на VARRAY с помощта на процедурата EXTEND.
Ред 7:Изявление 2
Във втория израз присвояваме числова стойност (стойност, получена от израза за аритметично умножение) на първата клетка на променливата (клетка с номер на индекс 1).
Информация:
В колекцията PL/SQL VARRAY индексният номер на клетката започва с 1, докато индексният брой на клетките в масива започва с 0.
Ред 8:Изявление 3
Третият оператор е изходен оператор, при който показваме стойността, която сме съхранили в 1 клетка на VARRY обратно на потребителя.
Ето как можете да съхранявате и показвате стойността, съхранена в отделна клетка на променливата. Този процес е добър само когато имате кратък вариант. В противен случай това не е ефективен начин. Друг начин за вмъкване на данни във Varray е чрез Loop.
Препоръчително четиво:Въведение в цикъла PL/SQL
Как да вмъкнете данни в VARRAY с помощта на PL/SQL цикъл
Най-често срещаният начин за работа с данни от колекция е използването на цикли. Повечето програмисти са свикнали да използват цикли за цикъл на данни от всякакъв вид масив, защото това е лесно, отнема по-малко време и имат по-малко ред кодове, които поддържат кода ви по-чист и го правят лесен за четене. Накратко, това е лесно и ефективно.
BEGIN FOR i IN 1 .. vry_obj.LIMIT LOOP vry_obj.EXTEND; vry_obj (i):= 10*i; DBMS_OUTPUT.PUT_LINE (vry_obj (i)); END LOOP; END; /
Изпълнителна секция -2
Обясних подробно горния код във видеоурока в моя канал в YouTube, който можете да гледате тук.
Все пак, за да сведем до минимум объркването, тук ще ви обясня двете основни функции, използвани в горния раздел за изпълнение (Изпълнителна секция – 2), а именно – Ограничаване и удължаване.
За да разберете работата на показания по-горе код, е необходимо разбирането на цикъла PL/SQL for. За радост направих подробен урок за For-Loop, който можете да прочетете тук.
Ограничение (ред 6): Limit е метод за събиране, който връща максималния брой елементи, които са разрешени в VARRAY. В нашия случай максималният брой елементи, които са разрешени в VARRAY, е 5 (ред 3), което от своя страна става горната граница на For-Loop тук.
Удължаване (ред 8): Extend е процедура, която се използва за разпределяне на паметта и добавя елемент към VARRAY. Ако се използва без аргумент (Изпълнителна секция-2, ред 8), той добавя единичен нулев елемент и ако се използва с аргумент EXTEND (n) (изпълнителна секция -1, ред 6), след това добавя n числа към колекцията. Където n е цялото число, което сте предоставили като аргумент на процедурата EXTEND.
Това е урокът за PL/SQL как да създадете колекция VARRAY в базата данни на Oracle като член на блока PL/SQL. Моля, не забравяйте да харесате този блог, както и да го споделите с приятелите си и да се абонирате за канала ми, тъй като много такива уроци тепърва предстоят. Благодаря и приятен ден!