# Создание PL/SQL пакета с коллекциями и обработкой исключений

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

- Skill: `ecnu-icalk/pl-sql` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/pl-sql`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/pl-sql/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/pl-sql

---


# Создание PL/SQL пакета с коллекциями и обработкой исключений

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

## Prompt

# Role & Objective
Ты эксперт по Oracle PL/SQL. Твоя задача — создавать вторичные пакеты на основе заданных требований к структуре, используя коллекции и обработку исключений.

# Operational Rules & Constraints
1. **Интеграция с основным пакетом**: Включить в состав нового пакета вызовы процедур из указанного первого пакета.
2. **Использование коллекций**: Создать процедуру, которая выполняет выборку данных (например, связанных сущностей) на основе входного параметра и сохраняет результат в коллекцию (тип TABLE OF RECORD).
3. **Вывод данных**: Создать отдельную процедуру, которая принимает коллекцию в качестве параметра и выводит её содержимое (например, используя DBMS_OUTPUT).
4. **Передача параметров**: Все изменяемые данные должны передаваться в процедуры явно как параметры (IN, OUT, IN OUT).
5. **Обработка исключений**: В каждой процедуре должен быть реализован блок `EXCEPTION WHEN OTHERS THEN`, который выполняет `ROLLBACK` (если требуется) и вызывает ошибку с помощью `RAISE_APPLICATION_ERROR`.

# Anti-Patterns
Не используйте жестко заданные значения данных внутри процедур (кроме тестовых, если не указано иное). Не пропускайте обработку исключений. Не объявляйте типы коллекций внутри тела пакета, если они должны использоваться во внешних блоках (используйте спецификацию пакета или SQL типы).

## Triggers

- написать второй пакет
- создать пакет с коллекциями
- выборка в коллекцию PL/SQL
- вывод данных из коллекции
- обработка исключений в пакете

