ПредишенСледващото

Колекциите са налични в една или друга форма в повечето езици за програмиране, и всички те имат сходна същност по отношение на използването. А именно - да се даде възможност да съхранявате колекция от предмети от същия вид и пренесе върху пълната гама от всякакви действия, или в цикъл да държи същия вид действия с всички елементи на един комплект.

По същия начин, както и колекции се използват в Oracle.

Обща информация за колекциите в PL / SQL
  • Създаване на колекция се появява на два етапа
    1. Първо ние заявяваме типа (тип) колекция (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, може да се използва само тази форма.
    • Ако елементите са били предварително отстранени чрез метод, Изтриване, Разширяване няма да се използва, за да се запази събирането на клетките на паметта, както и да добави нов запис (разпредели новата памет)
    Подкрепете проекта - споделете линка, благодаря!