«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > МАССОВЫЙ СБОР в PL/SQL

МАССОВЫЙ СБОР в PL/SQL

Опубликовано 8 ноября 2024 г.
Просматривать:225

BULK COLLECT in PL/SQL

Конечно! Вот простой пример, демонстрирующий использование BULK COLLECT в PL/SQL.

Что такое массовый сбор?

BULK COLLECT — это метод, используемый для извлечения нескольких строк из запроса SQL в коллекцию PL/SQL за одну операцию. Это уменьшает переключение контекста между механизмами SQL и PL/SQL, делая процесс более эффективным, особенно для больших наборов данных.

Простой пример массового сбора

В этом примере мы создадим таблицу, вставим в нее некоторые данные, а затем воспользуемся BULK COLLECT для извлечения данных в коллекцию.

Шаг 1. Создайте образец таблицы

Сначала мы создаем образец таблицы под названием «Сотрудники».

СОЗДАТЬ ТАБЛИЦУ сотрудников (
идентификатор сотрудника НОМЕР,
имя_сотрудника VARCHAR2(50)
);

INSERT INTO сотрудники (employee_id, сотрудник_имя) VALUES (1, 'Джон Доу');
INSERT INTO сотрудники (employee_id, сотрудник_имя) VALUES (2, 'Джейн Смит');
INSERT INTO сотрудники (employee_id, сотрудник_имя) VALUES (3, 'Сэм Уилсон');
INSERT INTO сотрудники (employee_id, сотрудник_имя) ЗНАЧЕНИЯ (4, «Сара Браун»);
INSERT INTO сотрудники (employee_id, сотрудник_имя) VALUES (5, «Майк Джонсон»);

СОВЕРШИТЬ;

Шаг 2. Блокирование PL/SQL с использованием массового сбора

Теперь мы будем использовать BULK COLLECT для сбора имен всех сотрудников в коллекцию.

ОБЪЯВИТЬ
ТИП emp_name_table ЭТО ТАБЛИЦА VARCHAR2(50); -- Определить тип коллекции
emp_names emp_name_table; -- Объявить переменную этого типа
НАЧИНАТЬ
-- Массовый сбор имен сотрудников в коллекцию
ВЫБРАТЬ имя_сотрудника МАССОВЫЙ СОБИРАТЬ В emp_names
ОТ сотрудников;

-- Print the names
FOR i IN 1..emp_names.COUNT LOOP
    DBMS_OUTPUT.PUT_LINE('Employee Name: ' || emp_names(i));
END LOOP;

КОНЕЦ;
/

Объяснение

  1. Определение типа коллекции: мы определяем тип коллекции под названием emp_name_table для хранения имен сотрудников.

  2. BULK COLLECT INTO: оператор SELECT извлекает все значения сотрудников_name из таблицы сотрудников и собирает их в коллекцию emp_names за один раз.

  3. Цикл для отображения результатов: мы просматриваем коллекцию, используя COUNT, чтобы получить общее количество записей и вывести имя каждого сотрудника.

Выход

Если вы запустите приведенный выше блок PL/SQL, вы увидите такой вывод:

Имя сотрудника: Джон Доу
Имя сотрудника: Джейн Смит
Имя сотрудника: Сэм Уилсон
Имя сотрудника: Сара Браун
Имя сотрудника: Майк Джонсон

Ключевые моменты

Эффективность: использование BULK COLLECT уменьшает количество переключений контекста между SQL и PL/SQL, что делает обработку больших наборов данных более эффективной.

Обработка больших данных: это особенно полезно при работе с большими наборами данных, поскольку сводит к минимуму накладные расходы на обработку отдельных строк.

Этот пример иллюстрирует базовое использование BULK COLLECT для эффективного сбора нескольких строк в коллекцию PL/SQL.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/mrcaption49/bulk-collect-in-plsql-34hc?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3