Oracle Developer👨🏻‍💻
3.22K subscribers
606 photos
66 videos
2 files
482 links
🔝 канал о разработке в СУБД Oracle:
SQL, PL/SQL, оптимизация, архитектура и многое другое...

Backend-pro.ru - обучение по различным программам, связанных с backend-разработкой для ФЛ и ЮЛ.

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
Ревью функции с динамическим SQL. Решение

Постановка: смотрите пост вторника.

Анализ
Кратко: я бы такой код не пропустил на ревью.

Такое ощущение, что это писал человек, который вчера узнал про коллекции и динамический SQL и начал применять это везде.

Начнем с требуемого функционала: нужно вывести определенные поля из таблицы employees отсортированной по полю salary.

Весь код можно упростить до:
begin
for r in (select first_name || last_name name
from employees
order by salary desc) loop
dbms_output.put_line(r.name);
end loop;
end;
/

Определение локальных типов, коллекции, динамический SQL - все это не нужно и избыточно. Даже, не нужен столбец salary - он не выводится.
Вполне, подойдет проход в цикле по неявному курсору.

Пример упрощенный, поэтому вместо “чего-то деланья”, выводится текст. Как правильно заметили участники чатика, было бы неплохо отделить мух от котлет. Вывод данных от получения данных. Но это уже совсем тонкая материя, не для этого уровня задачи.

Хотите научиться писать PL/SQL-код, за который не будет стыдно?
Уже сегодня в 20:00 запускается очередной поток курса “Основы PL/SQL”. Не упустите свой шанс 😉

Палец вверх, если задача понравилась 👍
Обсудить в чатике 🗣

#решениезадачи #dynamicsql #cursor
@oracle_dbd