Введение в коллекции PL / SQL

Прежде всего, как и другие современные языки программирования, PL / SQL также предоставляет программистам возможность использовать коллекции PL / SQL. Таким образом, в общих чертах, коллекция представляет собой структуру данных, имеющую упорядоченную группу элементов одного и того же типа данных, и доступ к этим элементам осуществляется через индексы в соответствии с конкретными требованиями. Обычно используемые коллекции в большинстве языков программирования: Arrays, Set, List, Queue и т. Д.

Коллекция PL / SQL предоставляет множество преимуществ как программисту, так и пользователю, сохраняя и получая доступ к данным схожих типов данных в приложении. Когда есть необходимость обрабатывать данные одновременно или обрабатывать большой объем данных, коллекции PL / SQL очень полезны. Это также уменьшает размер и скорость обработки при хранении данных и доступе к элементам. К элементам в коллекциях можно легко получить доступ через циклы и индексы. В отличие от массивов в других языках программирования, PL / SQL поддерживает только одномерные коллекции, а данные в коллекциях идентифицируются индексами (также называемыми индексами в других языках). Каждый элемент доступен и обработан через этот уникальный индекс.

Типы коллекций PL / SQL

Коллекции PL / SQL имеют 3 типа, которые приведены ниже с синтаксисом:

Вложенные таблицы

Вложенная таблица - это коллекция PL / SQL, размер которой не фиксирован. Таким образом, это похоже на одномерный массив за исключением того факта, что размер фиксирован в массивах, и он может быть плотным и разреженным в обоих случаях. Программист должен каждый раз расширять память, прежде чем использовать ее, используя EXTEND Subscript во Вложенной таблице, начиная с целого числа «1».

Вложенные таблицы попадают в коллекции Persistent PL / SQL, что означает, что они могут быть использованы в дальнейшем при хранении в базе данных. Программист также может удалить элемент массива и сделать таблицу разреженной, что означает, что вложенные таблицы могут быть как плотными, так и разреженными. Вложенные таблицы могут быть объявлены либо внутри блока PL / SQL, либо на уровне схемы.

Поскольку нет ограничений на верхний размер во вложенных таблицах, они подпадают под категорию неограниченных коллекций PL / SQL.

Синтаксис:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Массивы переменного размера или VARRAY

VARRAY - это коллекция PL / SQL, в которой размер коллекции фиксирован, как определено в ее определении, поэтому VARRAY называются ограниченными элементами. Массивы заполняются последовательно, начиная с нижнего индекса 1. В отличие от вложенных таблиц, массивы обеспечивают меньшую гибкость, поскольку они плотны. только. Таким образом, программист не может удалить какой-либо элемент между ними, либо весь массив данных удаляется, либо его можно обрезать с конца Varrays должен быть доступен и храниться последовательно. Его можно определить либо внутри блока PL / SQL, либо на уровне схемы. Как и вложенные таблицы, varrays подпадает под категорию постоянных коллекций, поэтому их можно повторно использовать и хранить в базе данных.

Синтаксис:

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.COUNTВозвращает количество элементов, присутствующих в коллекции
2.ПЕРВЫЙВозвращает наименьший (первый) порядковый номер в коллекции для целочисленных индексов
3.ПОСЛЕДНИЙВозвращает самый большой (последний) индекс в коллекции для целочисленных индексов.
4.EXISTS (п)Он используется для проверки наличия определенного элемента в коллекции или нет. Возвращает TRUE, если в коллекции присутствуют n-е элементы, FALSE, если нет.
5.Предшествующий уровень (п)Он возвращает номер индекса, который является предшественником индекса (n), заданного пользователем в коллекции.
6.NEXT (п)Он возвращает номер индекса, который является преемником индекса (n), заданного пользователем в коллекции.
7.ОТДЕЛКАИспользуется для удаления элементов из коллекции. 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 into возвращает более 1 строки.

Преимущества коллекций в PL / SQL

Некоторые из преимуществ коллекций PL / SQL приведены ниже:

  • Кроме того, одним из самых больших преимуществ коллекций является то, что они улучшают производительность системы, кэшируя статические данные, к которым необходимо регулярно обращаться.
  • Наиболее важно, что коллекции полезны при работе с большим набором данных, имеющим тот же тип данных, для которого пользователю необходимо выполнить несколько операций DML.
  • Используя одну коллекционную переменную, мы можем уменьшить количество переменных, используемых для хранения разных значений и, следовательно, для экономии памяти.
  • Выполнение различных операций, таких как хранение и обработка данных, становится простым благодаря уже предоставленным методам сбора PL / SQL.

Вывод

С помощью приведенного выше описания вы можете получить представление о том, что такое коллекция PL / SQL, и о методах, которые можно использовать в коллекциях PL / SQL. Прежде чем использовать любой тип коллекции PL / SQL в программе, разработчик должен сначала тщательно продумать сценарий, прежде чем выбирать какой-либо тип. Хотя работать в коллекциях PL / SQL несложно, но в разные моменты могут возникать определенные исключения, о которых программист должен знать и знать, как с ними обращаться.

Рекомендуемые статьи

Это руководство к коллекциям PL / SQL. Здесь мы обсуждаем синтаксис, типы, методы и исключения коллекций PL / SQL вместе с преимуществами. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Курсоры в PL / SQL
  2. Оператор CASE в PL / SQL
  3. Oracle PL / SQL Интервью Вопросы
  4. Команды PL / SQL