Колекциите са налични в една или друга форма в повечето езици за програмиране, и всички те имат сходна същност по отношение на използването. А именно - да се даде възможност да съхранявате колекция от предмети от същия вид и пренесе върху пълната гама от всякакви действия, или в цикъл да държи същия вид действия с всички елементи на един комплект.
По същия начин, както и колекции се използват в Oracle.
Обща информация за колекциите в PL / SQL
- Създаване на колекция се появява на два етапа
- Първо ние заявяваме типа (тип) колекция (assoc_array_type_def дизайн, varray_type_def и nested_table_type_def ще бъдат дадени по-късно)
видове колекции
PL / SQL блок
пакет
ниво Schema
Само на някои схеми за нивото
асоциативен масив
Също така се нарича индекс от таблица или PL / SQL таблица.
Тип е описан, както следва (assoc_array_type_def).
- За да бъде поставен в памет на малките маси, директории
- За да мине за събиране на параметър
Ограничения:
Ако промените настройките и NLS_SORT NLS_COMP по време на сесията, след завършване на асоциативен масив, можем да получим изненадващи резултати наричат първият метод, последното, в непосредствена близост, предишния. Може да имате проблеми при изпращане на асоциативен масив като параметър на друг DB с различни настройки и NLS_SORT NLS_COMP
Това е масив от последователно съхранява елементи
Тип е описан, както следва (varay_type_def):
- Размер е посочено в създаване
- индексирани 1
- инициализира дизайнера
- Ако параметрите не са прехвърлени на строителя, празен колекция се връща
- Типът данни - е всякакъв вид данни, с изключение на код на курсора
- Ние знаем, че най-големият брой на елементи
- Достъп до елементите на последователността
Ограничения:
Максималният размер - 2,147,483,647 елементи
вложена маса
Тип е описан, както следва (nested_table_type_def):
- променя размера динамично колекция
- Може би в незаредено състояние, както е показано на картинката
< - инициализира дизайнера
- Ако параметрите не са прехвърлени на строителя, празен колекция се връща
- Типът данни - е всякакъв вид данни, с изключение на код на курсора
- Ако тя съдържа само една скаларна стойност, името на колоната - Column_Value
- Ако параметрите не са прехвърлени на строителя, празен колекция се връща
Задайте операции с вложени таблици
Операциите са възможни само с колекции вложени маса. И двете колекции, участващи в операцията, трябва да са от същия тип.
В резултат на операцията е също така събирането на вложени маса.
- Изтрий изтрива всички елементи. Веднага изчиства паметта разпределени за съхраняване на тези елементи.
- Изтриване (н) премахва елемент с индекс п. Памет не е освободен. Елементът може да бъде възстановена (т.е. избереш нова) и това ще отнеме една и съща памет, която се проведе от предишната.
- Изтриване (п, т) премахва елементи с индекси в интервал n..m
- Ако изтрит елемент в колекцията там, не правят нищо.
- Подстригване () - изтрива един елемент в края на колекцията. Ако няма елемент хвърля изключение SUBSCRIPT_BEYOND_COUNT
- Подстригване (п) - премахва наш елементи в края на колекцията. Ако елементите е по-малко от п, изключение е хвърлен SUBSCRIPT_BEYOND_COUNT
- Той работи с вътрешен размер на колекцията. Т.е. Ако последният елемент е била отстранена с помощта на Delete, обадете се Trim () премахва вече отстранен по-рано елемент.
- Веднага изчиства паметта разпределени за съхранение на тези елементи
- По-добре е да не се използва във връзка с изтриете ()
- EXTEND добавя един елемент към нулевата стойност в края на събирането
- EXTEND (п) се добавя п елементи имат стойност нула в края на събирането
- EXTEND (п, I) добавя елемент на п копия на индекса и в края на събирането. Ако събирането не е NULL konstreynt, може да се използва само тази форма.
- Ако елементите са били предварително отстранени чрез метод, Изтриване, Разширяване няма да се използва, за да се запази събирането на клетките на паметта, както и да добави нов запис (разпредели новата памет)