TRIM метод Oracle PL/SQL

В этом учебном материале вы узнаете, как использовать метод коллекций TRIM в Oracle PL/SQL с синтаксисом и примерами.

Описание

В Oracle PL/SQL метод TRIM удаляет все элементы из коллекции любого типа. Эта операция немедленно освобождает память, выделенную для удаляемых элементов.

Синтаксис

Синтаксис метода коллекций TRIM в Oracle PL/SQL.

collection_name.TRIM;
collection_name.TRIM (n);

Параметры или аргументы

collection_name — имя коллекции.
TRIM — удаляет один элемент из конца коллекции, если коллекция имеет хотя бы один элемент.
TRIM (n) удаляет n элементов из конца коллекции, если в конце есть не менее n элементов.

Примечание

  • Если в коллекции нет элементов вызывается предопределенное исключение SUBSCRIPT_BEYOND_COUNT.
  • TRIM работает с внутренним размером коллекции. То есть, если DELETE удаляет элемент, но сохраняет его заполнитель, TRIM считает, что этот элемент существует. Поэтому TRIM может удалить удаленный элемент.
    PL/SQL не удерживает заполнители для обрезанных элементов. Поэтому обрезанные элементы не входят во внутренний размер коллекции, и, вы не сможете восстановить обрезанный элемент, присвоив ему действительное значение.
  • TRIM работает с внутренним размером коллекции. То есть, если DELETE удаляет элемент, но сохраняет его заполнитель, TRIM считает, что этот элемент существует. Поэтому TRIM может удалить удаленный элемент.
    PL/SQL не удерживает заполнители для обрезанных элементов. Поэтому обрезанные элементы не входят во внутренний размер коллекции, и, вы не сможете восстановить обрезанный элемент, присвоив ему действительное значение.
  • Не надейтесь на взаимодействия между TRIM и DELETE. Обрабатывайте Nested Tables, как массивы varray (и используйте только DELETE), либо стеки (и используйте только TRIM и EXTEND).
  • Смотрите также методы коллекций: DELETE, EXTEND, EXISTS, FIRST и LAST, COUNT, LIMIT,PRIOR и NEXT.

Пример

Рассмотрим пример, чтобы понять как использовать метод коллекций TRIM в Oracle PL/SQL.

Пример TRIM с Nested Tables

Рассмотрим пример, в котором объявляем переменную Nested Tables,
инициализируем ее шестью элементами;
обрезаем последний элемент;
удаляем четвертый элемент;
а затем обрезаем последние два элемента, одним из которых является удаленный четвертый элемент.
Процедура print_nt печатает вложенную переменную таблицы после инициализации и после операций TRIM и DELETE.