"PL/SQL для начинающих: краткий гид и полезные советы"
👋 Друзья, всем привет!
Сегодня необычный пост, и, возможно, кому-то из вас он покажется слишком простым.
Но, как показывает практика, в наш канал периодически добавляются начинающие Oracle-разработчики.
Уверен, им будет полезно иметь под рукой такой обзорный текст.
🚀 Итак, поехали!
1️⃣ Зачем нужен PL/SQL?
PL/SQL — это языковое расширение для SQL. С его помощью мы можем решить задачи, которые нельзя решить силами простого SQL.
2️⃣ Какие возможности даёт PL/SQL?
PL/SQL поддерживает:
🔸 Блоки
🔸 Кастомные типы данных
🔸 Переменные и константы
🔸 Управляющие конструкции
🔸 Коллекции
🔸 ООП
🔸 Функции/процедуры
🔸 Пакеты
🔸 Триггеры
🔸 Обработку ошибок
🔸 Расписания
3️⃣ Чем хорош PL/SQL?
✅ Интеграция с SQL
🔸для разработки нам не требуются специальные знания;
🔸мы можем встраивать SQL-запросы напрямую в код.
✅ Высокая производительность
🔸выполнение блоков PL/SQL на сервере снижает нагрузку на сеть и экономит время;
🔸поддержка пакетных операций (FORALL, BULK COLLECT) минимизирует переключение контекста между SQL и PL/SQL.
✅ Поддержка транзакций
Одно из требований ACID — согласованность изменений.
В PL/SQL у разработчика есть возможность гибкого управления транзакциями, что позволяет писать качественный и производительный код.
✅ Оптимизация под Oracle
PL/SQL активно использует различные фичи Oracle. Например, использование пакетов вместо отдельных функций или процедур даёт ощутимый выигрыш в производительности.
4️⃣ Зачем нужно знать PL/SQL?
📚 История Oracle на постсоветском пространстве насчитывает несколько десятилетий и различных версий этой СУБД. Один и тот же функционал может быть реализован самыми разными способами.
Поэтому полноценная поддержка, рефакторинг, развитие и миграции кода невозможны без уровня хотя бы middle+.
💡 Кроме того, как мы выяснили ранее, PL/SQL — это не просто язык разработки, это значительная часть экосистемы Oracle. Владение этим инструментом открывает перед вами все возможности этой СУБД.
5️⃣ О каких возможностях речь?
Помимо базовых возможностей, описанных выше, это ещё и:
🔸Oracle AQ (Advanced Queues);
🔸Динамический SQL;
🔸Использование встроенных пакетов Oracle (например, работа с файлами или HTTP);
🔸Компиляция функций в особенном режиме, например, DETERMINISTIC или PARALLEL_ENABLE;
🔸Компиляция кода на других языках, например, C или Java;
🔸Условная компиляция ($if, $else и т.п.);
🔸Поддержка типов данных XML, JSON
🔸Прочие возможности, о которых рассказывается на курсе PL/SQL Advanced.
Заключение
🔥 Друзья, это очень краткая выжимка возможностей PL/SQL.
Более подробно о них мы рассказываем в нашем курсе "Мастер Oracle PL/SQL".
Базовые возможности языка составляют основу программы, а дополнительные фичи мы разбираем с ребятами на факультативных встречах.
📩 Более подробную информацию о программе курса можно узнать у нашей поддержки.
📝 А если вам интересно проверить свой уровень, то уже в этот понедельник мы опубликуем небольшой тест на знание PL/SQL.
#Oracle #Junior #PLSQL #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
👋 Друзья, всем привет!
Сегодня необычный пост, и, возможно, кому-то из вас он покажется слишком простым.
Но, как показывает практика, в наш канал периодически добавляются начинающие Oracle-разработчики.
Уверен, им будет полезно иметь под рукой такой обзорный текст.
🚀 Итак, поехали!
1️⃣ Зачем нужен PL/SQL?
PL/SQL — это языковое расширение для SQL. С его помощью мы можем решить задачи, которые нельзя решить силами простого SQL.
2️⃣ Какие возможности даёт PL/SQL?
PL/SQL поддерживает:
🔸 Блоки
🔸 Кастомные типы данных
🔸 Переменные и константы
🔸 Управляющие конструкции
🔸 Коллекции
🔸 ООП
🔸 Функции/процедуры
🔸 Пакеты
🔸 Триггеры
🔸 Обработку ошибок
🔸 Расписания
3️⃣ Чем хорош PL/SQL?
✅ Интеграция с SQL
🔸для разработки нам не требуются специальные знания;
🔸мы можем встраивать SQL-запросы напрямую в код.
✅ Высокая производительность
🔸выполнение блоков PL/SQL на сервере снижает нагрузку на сеть и экономит время;
🔸поддержка пакетных операций (FORALL, BULK COLLECT) минимизирует переключение контекста между SQL и PL/SQL.
✅ Поддержка транзакций
Одно из требований ACID — согласованность изменений.
В PL/SQL у разработчика есть возможность гибкого управления транзакциями, что позволяет писать качественный и производительный код.
✅ Оптимизация под Oracle
PL/SQL активно использует различные фичи Oracle. Например, использование пакетов вместо отдельных функций или процедур даёт ощутимый выигрыш в производительности.
4️⃣ Зачем нужно знать PL/SQL?
📚 История Oracle на постсоветском пространстве насчитывает несколько десятилетий и различных версий этой СУБД. Один и тот же функционал может быть реализован самыми разными способами.
Поэтому полноценная поддержка, рефакторинг, развитие и миграции кода невозможны без уровня хотя бы middle+.
💡 Кроме того, как мы выяснили ранее, PL/SQL — это не просто язык разработки, это значительная часть экосистемы Oracle. Владение этим инструментом открывает перед вами все возможности этой СУБД.
5️⃣ О каких возможностях речь?
Помимо базовых возможностей, описанных выше, это ещё и:
🔸Oracle AQ (Advanced Queues);
🔸Динамический SQL;
🔸Использование встроенных пакетов Oracle (например, работа с файлами или HTTP);
🔸Компиляция функций в особенном режиме, например, DETERMINISTIC или PARALLEL_ENABLE;
🔸Компиляция кода на других языках, например, C или Java;
🔸Условная компиляция ($if, $else и т.п.);
🔸Поддержка типов данных XML, JSON
🔸Прочие возможности, о которых рассказывается на курсе PL/SQL Advanced.
Заключение
🔥 Друзья, это очень краткая выжимка возможностей PL/SQL.
Более подробно о них мы рассказываем в нашем курсе "Мастер Oracle PL/SQL".
Базовые возможности языка составляют основу программы, а дополнительные фичи мы разбираем с ребятами на факультативных встречах.
📩 Более подробную информацию о программе курса можно узнать у нашей поддержки.
📝 А если вам интересно проверить свой уровень, то уже в этот понедельник мы опубликуем небольшой тест на знание PL/SQL.
#Oracle #Junior #PLSQL #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Наши студенты – настоящие бойцы!
Друзья, привет!
Посмотрите, какие отзывы оставляют ученики во время обучения на наших курсах. Они не просто проходят обучение – они растут, пробиваются, выходят на новый уровень! Кстати, отзыву пару дней.
❗️ Два года самостоятельного обучения – книги, YouTube, ChatGPT… но все равно ощущение, что пазл не складывается.
👉 А на курсе – четкая система, понимание причинно-следственных связей, навык писать мощные запросы.
Итог?
💥 Человек стал разбираться в оптимизации, применяет знания прямо на работе, а теперь уже планирует курс по секционированию.
Почему? Потому что обучение работает
Наши ребята не тратят годы на самостоятельные попытки – они берут готовую систему и выходят на 200К+ в разы быстрее.
💰 Следующий шаг за тобой!
На следующей неделе мы открываем анкету предзаписи на курс по "Программирование на Oracle PL/SQL".
🎯 Если ты зарабатываешь меньше 200К и хочешь вырасти в доходе, как наши ученики, то готовься – скоро старт! 🚀
#Oracle #PLSQL #Зарплата #Карьера #IT #Обучение
Канал Oracle Developer | Чатик
Друзья, привет!
Посмотрите, какие отзывы оставляют ученики во время обучения на наших курсах. Они не просто проходят обучение – они растут, пробиваются, выходят на новый уровень! Кстати, отзыву пару дней.
❗️ Два года самостоятельного обучения – книги, YouTube, ChatGPT… но все равно ощущение, что пазл не складывается.
👉 А на курсе – четкая система, понимание причинно-следственных связей, навык писать мощные запросы.
Итог?
💥 Человек стал разбираться в оптимизации, применяет знания прямо на работе, а теперь уже планирует курс по секционированию.
Почему? Потому что обучение работает
Наши ребята не тратят годы на самостоятельные попытки – они берут готовую систему и выходят на 200К+ в разы быстрее.
💰 Следующий шаг за тобой!
На следующей неделе мы открываем анкету предзаписи на курс по "Программирование на Oracle PL/SQL".
🎯 Если ты зарабатываешь меньше 200К и хочешь вырасти в доходе, как наши ученики, то готовься – скоро старт! 🚀
#Oracle #PLSQL #Зарплата #Карьера #IT #Обучение
Канал Oracle Developer | Чатик
Динамический SQL в PL/SQL
Друзья, всем привет! 👋
Сегодня технический пост, поговорим о такой особенности Oracle, как Динамический SQL.📊
Пакет
Есть таблица
Пример данных:
📌 Задача:
Написать метод, который вернёт данные из этой таблицы в отсортированном виде.
🔶 Поле для сортировки — любое из строковых атрибутов (
🔶 Направление сортировки — по возрастанию или по убыванию (выбирается параметром).
Присылайте свои решения в наш чатик💬
А если хочется не просто покодить, а разобраться в динамическом SQL глубже, ждём вас в этот четверг на вебинаре.
⏳ Длительность: ~1,5 часа
🎓 Формат: немного теории, демонстрация кода + разбор реальных примеров.
💡 О чём поговорим:
✅
✅ Разница между нативным и пакетным SQL
✅ Безопасность и защита от SQL-инъекций
✅ Динамические курсоры
📩 Ссылку на Zoom пришлём в четверг — не пропустите! Следите за обновлениями в канале.
#PLSQL #динамическийSQL #Oracle #Pavel_Dolganov #вебинар
Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋
Сегодня технический пост, поговорим о такой особенности Oracle, как Динамический SQL.
Пакет
DBMS_SQL
появился ещё в версии Oracle 7.1, так что многие из вас наверняка сталкивались с динамическими запросами в своей практике. А чтобы освежить знания, предлагаю небольшую задачку! 🚀 Есть таблица
COUNTRY
: create table COUNTRY
(
id NUMBER(3) not null,
name VARCHAR2(100 CHAR) not null,
iso_alpha_2 VARCHAR2(2 CHAR),
iso_alpha_3 VARCHAR2(3 CHAR)
);
Пример данных:
| id | name | iso_alpha_2 | iso_alpha_3 |
|-----|-----------|-------------|-------------|
| 36 | АВСТРАЛИЯ | AU | AUS |
| 40 | АВСТРИЯ | AT | AUT |
| 44 | БАГАМЫ | BS | BHS |
| 48 | БАХРЕЙН | BH | BHR |
📌 Задача:
Написать метод, который вернёт данные из этой таблицы в отсортированном виде.
🔶 Поле для сортировки — любое из строковых атрибутов (
name
, iso_alpha_2
, iso_alpha_3
). 🔶 Направление сортировки — по возрастанию или по убыванию (выбирается параметром).
Присылайте свои решения в наш чатик
А если хочется не просто покодить, а разобраться в динамическом SQL глубже, ждём вас в этот четверг на вебинаре.
⏳ Длительность: ~1,5 часа
🎓 Формат: немного теории, демонстрация кода + разбор реальных примеров.
💡 О чём поговорим:
✅
EXECUTE IMMEDIATE
: работа с DML, DDL и параметрами ✅ Разница между нативным и пакетным SQL
✅ Безопасность и защита от SQL-инъекций
✅ Динамические курсоры
📩 Ссылку на Zoom пришлём в четверг — не пропустите! Следите за обновлениями в канале.
#PLSQL #динамическийSQL #Oracle #Pavel_Dolganov #вебинар
Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
Отзыв от студента
Павел Долганов
Расти или стоять на месте? История одного разработчика
Друзья, всем привет! 👋
Сегодня у нас в гостях Александр, который в прошлом году прошёл обучение на курсе "Мастер Oracle PL/SQL", а прямо сейчас работает на пятом потоке нашего курса по оптимизации. 🚀
Вот о чём мы поговорили с Сашей:
🔶в чём были его сложности до курса по PL/SQL;
🔶почему он выбрал платное обучение, а не поиск информации в интернете;
🔶как изменилась его жизнь после курса;
🔶что помогает ему брать ответственность за свою жизнь на себя.
🎧 Длительность: 10 минут. Запись уже на скорости x1.5.
00:00 - Представление
00:33 - Почему пошёл на курс по PL/SQL
01:24 - Обратная связь о курсе
02:31 - Как изменилась жизнь после обучения
04:50 - Почему пошёл на курс, а не стал искать информацию в свободном доступе
05:58 - Почему раньше не пришёл к Денису
06:59 - Напутствие от Саши
07:46 - Что помогает взять ответственность за свою жизнь на себя?
Самое важное в этом аудио - в конце ❤️
Друзья, такие отзывы очень вдохновляют нас. И мы уже работаем над новыми материалами и форматами. Единственный в этом году поток по PL/SQL стартует уже в марте. Так что не упустите шанс присоединиться! ⏳
🔗 Записывайтесь и становитесь "Мастером Oracle PL/SQL!", освойте навыки программирования Oracle PL/SQL на высшем уровне🚀
👉 АНКЕТА ПРЕДЗАПИСИ ⬅️
#PLSQL #разработка #карьера #отзывы #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋
Сегодня у нас в гостях Александр, который в прошлом году прошёл обучение на курсе "Мастер Oracle PL/SQL", а прямо сейчас работает на пятом потоке нашего курса по оптимизации. 🚀
Вот о чём мы поговорили с Сашей:
🔶в чём были его сложности до курса по PL/SQL;
🔶почему он выбрал платное обучение, а не поиск информации в интернете;
🔶как изменилась его жизнь после курса;
🔶что помогает ему брать ответственность за свою жизнь на себя.
🎧 Длительность: 10 минут. Запись уже на скорости x1.5.
00:00 - Представление
00:33 - Почему пошёл на курс по PL/SQL
01:24 - Обратная связь о курсе
02:31 - Как изменилась жизнь после обучения
04:50 - Почему пошёл на курс, а не стал искать информацию в свободном доступе
05:58 - Почему раньше не пришёл к Денису
06:59 - Напутствие от Саши
07:46 - Что помогает взять ответственность за свою жизнь на себя?
Самое важное в этом аудио - в конце ❤️
Друзья, такие отзывы очень вдохновляют нас. И мы уже работаем над новыми материалами и форматами. Единственный в этом году поток по PL/SQL стартует уже в марте. Так что не упустите шанс присоединиться! ⏳
🔗 Записывайтесь и становитесь "Мастером Oracle PL/SQL!", освойте навыки программирования Oracle PL/SQL на высшем уровне
👉 АНКЕТА ПРЕДЗАПИСИ ⬅️
#PLSQL #разработка #карьера #отзывы #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
Геометрическая прогрессия: простая задача с изюминкой! 🔝
Друзья, всем привет! 👋
Сегодня понедельник, а значит, самое время для технического поста ⚙️📚
Подкину вам простую, но интересную задачку из школьной программы, которая, тем не менее, запросто может встретиться вам на собеседовании 😉
Как известно, любой член геометрической прогрессии вычисляется по формуле:
aₙ = a₁ * qⁿ⁻¹
где:
🔹 aₙ — n-й член прогрессии
🔹 a₁ — первый член прогрессии
🔹 q — знаменатель прогрессии
🔹 n — номер члена последовательности
📌 Задача:
Написать метод (или анонимный блок), который принимает на вход:
🔶 первый член прогрессии (положительное целое число)
🔶 знаменатель прогрессии (положительное целое число)
🔶 предел прогрессии (положительное целое число, больше первого члена)
Необходимо:
вывести в терминал 💻 все элементы возрастающей геометрической прогрессии.
⭐️ Задание со звёздочкой:
Вывести не все члены прогрессии, а только конкретный (например, пятый).
Делитесь своими решениями в нашем чатике 💬
🎯 А если хочется не просто попрограммировать, а увидеть изящное решение — ждём вас в этот четверг на вебинаре!
🗓 Когда: четверг
⏳ Длительность: 1 час
🎓 Формат: немного теории 📖 + демонстрация кода 💻 + разбор новых фишечек Oracle 🚀
⏺️ Будет ли запись: НЕТ!
📢 Деталей пока не раскрываем, чтобы неспойлерить решение задачки! 😉
👉 Всё узнаете в четверг — следите за обновлениями в нашем канале!
#PLSQL #Oracle #Pavel_Dolganov #вебинар #задачка
🔗 Канал Oracle Developer | Чатик💬
Друзья, всем привет! 👋
Сегодня понедельник, а значит, самое время для технического поста ⚙️📚
Подкину вам простую, но интересную задачку из школьной программы, которая, тем не менее, запросто может встретиться вам на собеседовании 😉
Как известно, любой член геометрической прогрессии вычисляется по формуле:
aₙ = a₁ * qⁿ⁻¹
где:
🔹 aₙ — n-й член прогрессии
🔹 a₁ — первый член прогрессии
🔹 q — знаменатель прогрессии
🔹 n — номер члена последовательности
📌 Задача:
Написать метод (или анонимный блок), который принимает на вход:
🔶 первый член прогрессии (положительное целое число)
🔶 знаменатель прогрессии (положительное целое число)
🔶 предел прогрессии (положительное целое число, больше первого члена)
Необходимо:
вывести в терминал 💻 все элементы возрастающей геометрической прогрессии.
⭐️ Задание со звёздочкой:
Вывести не все члены прогрессии, а только конкретный (например, пятый).
Делитесь своими решениями в нашем чатике 💬
🎯 А если хочется не просто попрограммировать, а увидеть изящное решение — ждём вас в этот четверг на вебинаре!
🗓 Когда: четверг
⏳ Длительность: 1 час
🎓 Формат: немного теории 📖 + демонстрация кода 💻 + разбор новых фишечек Oracle 🚀
⏺️ Будет ли запись: НЕТ!
📢 Деталей пока не раскрываем, чтобы не
👉 Всё узнаете в четверг — следите за обновлениями в нашем канале!
#PLSQL #Oracle #Pavel_Dolganov #вебинар #задачка
🔗 Канал Oracle Developer | Чатик💬
Please open Telegram to view this post
VIEW IN TELEGRAM
Геометрическая прогрессия: простая задача с изюминкой - решение ✅
Друзья, всем привет! 👋
В понедельник мы предложили вам реализовать метод для вывода элементов возрастающей геометрической прогрессии. Спасибо всем, кто принял участие в обсуждении и поделился своими решениями в чатике! 🔥
С выходом 21-й версии Oracle эту задачу можно решить так:
📌 Где:
🔹
🔹
🔹
🔹
Если интересно поговорить про циклы или узнать, какие ещё новые фишечки приготовила для вас корпорация Oracle, приходите сегодня в 19:00 мск на наш очередной вебинар. 🚀
Что вас ждет
▫️ Немного теории
▫️Новые возможности Oracle 21+
▫️ Вопросы с собеседований
▫️ Разбор практических примеров
⚠️⚠️⚠️ Записи не будет!
Зато будет возможность задать вопросы и разобрать свои кейсы в прямом эфире.
Кому будет полезно?
🔸 Начинающим разработчикам — чтобы понимать, какие виды циклов использовать для решения своих задач.
🔸 Мидлам — чтобы быть в курсе новых фишечек Oracle .
🔸 Всем, кто хочет уверенно проходить собеседования.
🎤 Ведущий — Павел Долганов.
📅 Подключайтесь сегодня в 19:00 мск!
Будет много полезного.
➡️ Ссылка на ZOOM ⬅️
⚠️ Возможность подключиться ограничена Zoom: максимум 100 участников, успевайте.
#Oracle #PLSQL #циклы #вебинар #анонс #Pavel_Dolganov
Канал Oracle Developer | Чатик💬
Друзья, всем привет! 👋
В понедельник мы предложили вам реализовать метод для вывода элементов возрастающей геометрической прогрессии. Спасибо всем, кто принял участие в обсуждении и поделился своими решениями в чатике! 🔥
С выходом 21-й версии Oracle эту задачу можно решить так:
FOR i IN p_min, repeat i * q_val WHILE i < p_max LOOP
dbms_output.put_line('n' || i_tmp || ' = ' || i);
i_tmp := i_tmp + 1;
END LOOP;
📌 Где:
🔹
p_min
— первый член прогрессии🔹
q_val
— знаменатель прогрессии🔹
p_max
— предел прогрессии🔹
i_tmp
— текущий член прогрессииЕсли интересно поговорить про циклы или узнать, какие ещё новые фишечки приготовила для вас корпорация Oracle, приходите сегодня в 19:00 мск на наш очередной вебинар. 🚀
Что вас ждет
▫️ Немного теории
▫️Новые возможности Oracle 21+
▫️ Вопросы с собеседований
▫️ Разбор практических примеров
⚠️⚠️⚠️ Записи не будет!
Зато будет возможность задать вопросы и разобрать свои кейсы в прямом эфире.
Кому будет полезно?
🔸 Начинающим разработчикам — чтобы понимать, какие виды циклов использовать для решения своих задач.
🔸 Мидлам — чтобы быть в курсе новых фишечек Oracle .
🔸 Всем, кто хочет уверенно проходить собеседования.
🎤 Ведущий — Павел Долганов.
📅 Подключайтесь сегодня в 19:00 мск!
Будет много полезного.
➡️ Ссылка на ZOOM ⬅️
⚠️ Возможность подключиться ограничена Zoom: максимум 100 участников, успевайте.
#Oracle #PLSQL #циклы #вебинар #анонс #Pavel_Dolganov
Канал Oracle Developer | Чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
Сравнение объектов в PL/SQL: простая задачка на разогрев
Друзья, всем привет! 👋
Понедельник – отличный день, чтобы размять мозги над небольшой задачкой🤔
Сегодня хотим предложить вам поближе познакомиться с объектами в Oracle.
❓ Задача:
В схеме HR создан пользовательский тип:
Нужно
сравнить два экземпляра этого типа и вывести результат в таком формате:
✅ Сравнение emp1 и emp2: Объекты равны
❌ Сравнение emp1 и emp3: Отличаются атрибуты:
Ждем ваши решения в 👉 чатике 💬
💡 Если тема зайдет, то в четверг проведем вебинар, где разберем:
🔶 Что такое OBJECTS в Oracle?
🔶 Когда и зачем их использовать?
🔶 В чем отличие от records?
🔶 Плюсы и минусы на реальных примерах.
⏳ Длительность: 1 час
🎓 Формат: немного теории + live-coding + примеры из практики.
⚠️⚠️⚠️ Записи не будет!
📩 Ссылку на Zoom пришлем в четверг — следите за обновлениями в канале!
🔥 Всем продуктивной недели!
#oracle #plsql #objects #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋
Понедельник – отличный день, чтобы размять мозги над небольшой задачкой
Сегодня хотим предложить вам поближе познакомиться с объектами в Oracle.
В схеме HR создан пользовательский тип:
CREATE OR REPLACE TYPE EmployeeType AS OBJECT (
employee_id NUMBER,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
department_id NUMBER
);
/
Нужно
сравнить два экземпляра этого типа и вывести результат в таком формате:
✅ Сравнение emp1 и emp2: Объекты равны
❌ Сравнение emp1 и emp3: Отличаются атрибуты:
employee_id
, first_name
.Ждем ваши решения в 👉 чатике 💬
💡 Если тема зайдет, то в четверг проведем вебинар, где разберем:
🔶 Что такое OBJECTS в Oracle?
🔶 Когда и зачем их использовать?
🔶 В чем отличие от records?
🔶 Плюсы и минусы на реальных примерах.
⏳ Длительность: 1 час
🎓 Формат: немного теории + live-coding + примеры из практики.
⚠️⚠️⚠️ Записи не будет!
📩 Ссылку на Zoom пришлем в четверг — следите за обновлениями в канале!
🔥 Всем продуктивной недели!
#oracle #plsql #objects #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
Сравнение объектов в PL/SQL: простая задачка на разогрев. Вебинар 📽
Друзья, всем привет! 👋🏻
Сегодня четверг - день наших тематических посиделок в Zoom💬
В понедельник мы предложили вам несложную задачку на сравнение двух экземпляров объектов в PL/SQL.
Но решений нам прислали не так много… 🤔
Либо задача неактуальная, либо тема объектов оказалась не очень востребована. 🤷♂️
Поэтому сегодня на обещанном вебинаре я:
✅ расскажу, какие возможности дают нам объекты в Oracle;
✅ покажу, чем отличаются объекты от записей;
✅ объясню, в чем практическая польза объектов в PL/SQL;
✅ разберу решение этой задачи;
✅ поделюсь с вами своими кейсами.
🔥 Кому будет полезно?
📌 Новичкам — узнаете, зачем вообще нужны объекты и какие они дают возможности лично вам;
📌 Мидлам — структурируете имеющиеся знания, увидите плюсы и минусы применения объектов;
📌 Сеньорам — будет возможность поучаствовать в дискуссии и поделиться своим опытом.
⏳ Длительность: 1 час
💡 Формат: немного теории + live-coding + ответы на вопросы.
⚠️⚠️⚠️ Записи не будет!
Зато будет возможность разобрать свои кейсы в прямом эфире!
🎤 Ведущий — Павел Долганов.
📅 Подключайтесь сегодня в 19:00 мск!
Будет много полезного.
➡️ Ссылка на ZOOM ⬅️
⚡️ Места ограничены! Zoom пускает только 100 участников, так что не тормозите!
Готовы прокачать свой PL/SQL? Тогда увидимся на вебинаре! 🚀
#Oracle #PLSQL #объекты #вебинар #анонс #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋🏻
Сегодня четверг - день наших тематических посиделок в Zoom
В понедельник мы предложили вам несложную задачку на сравнение двух экземпляров объектов в PL/SQL.
Но решений нам прислали не так много… 🤔
Либо задача неактуальная, либо тема объектов оказалась не очень востребована. 🤷♂️
Поэтому сегодня на обещанном вебинаре я:
✅ расскажу, какие возможности дают нам объекты в Oracle;
✅ покажу, чем отличаются объекты от записей;
✅ объясню, в чем практическая польза объектов в PL/SQL;
✅ разберу решение этой задачи;
✅ поделюсь с вами своими кейсами.
🔥 Кому будет полезно?
📌 Новичкам — узнаете, зачем вообще нужны объекты и какие они дают возможности лично вам;
📌 Мидлам — структурируете имеющиеся знания, увидите плюсы и минусы применения объектов;
📌 Сеньорам — будет возможность поучаствовать в дискуссии и поделиться своим опытом.
⏳ Длительность: 1 час
💡 Формат: немного теории + live-coding + ответы на вопросы.
⚠️⚠️⚠️ Записи не будет!
Зато будет возможность разобрать свои кейсы в прямом эфире!
🎤 Ведущий — Павел Долганов.
📅 Подключайтесь сегодня в 19:00 мск!
Будет много полезного.
➡️ Ссылка на ZOOM ⬅️
⚡️ Места ограничены! Zoom пускает только 100 участников, так что не тормозите!
Готовы прокачать свой PL/SQL? Тогда увидимся на вебинаре! 🚀
#Oracle #PLSQL #объекты #вебинар #анонс #Pavel_Dolganov
Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Хранимая процедура с секретом – разберешься?
Друзья, всем привет! 👋
Прошлая неделя прошла под флагом PL/SQL-марафона (подробности были тут). Судя по отзывам, он вам зашел! 🚀 Мы уже готовим серию вебинаров на откликнувшиеся вам темы.🔥 Но перед этим — небольшая задачка, решение которой вам скоро пригодится 😉
Итак,
💡 Задача:
Нужно написать хранимую процедуру, которая принимает параметр любого типа и выводит его значение на экран.
⭐️ Дополнительное задание для знатоков: если параметр типа
Простая задача? Давайте проверим! 😏
Делитесь своими решениями в нашем чатике 💬
📅 Разбор задачи будет в четверг, так что следите за обновлениями!👀
#PLSQL #Oracle #Pavel_Dolganov #задачка
🔗 Канал Oracle Developer | Чатик💬
Друзья, всем привет! 👋
Прошлая неделя прошла под флагом PL/SQL-марафона (подробности были тут). Судя по отзывам, он вам зашел! 🚀 Мы уже готовим серию вебинаров на откликнувшиеся вам темы.
Итак,
💡 Задача:
Нужно написать хранимую процедуру, которая принимает параметр любого типа и выводит его значение на экран.
⭐️ Дополнительное задание для знатоков: если параметр типа
nested table
, вывести количество записей в коллекции.Простая задача? Давайте проверим! 😏
Делитесь своими решениями в нашем чатике 💬
📅 Разбор задачи будет в четверг, так что следите за обновлениями!
#PLSQL #Oracle #Pavel_Dolganov #задачка
🔗 Канал Oracle Developer | Чатик💬
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Хранимая процедура с секретом – разберешься?
Друзья, всем привет! 👋
Во вторник мы подкинули вам задачку про гибкие параметры хранимых процедур в Oracle. Спасибо всем, кто прислал решение и принял участие в жаркой🔥 дискуссии! Многие сразу догадались, что речь идёт про ANYDATA. Но главный вопрос: а зачем это вообще нужно на практике? 🤔
У меня есть для вас один интересный кейс, и уже в следующий четверг мы обязательно его обсудим. Следите за анонсами! 📅
А пока разберёмся с ANYDATA и решением задачки.
💡Что такое ANYDATA❓
Это универсальный контейнер для данных, который позволяет хранить и передавать значения разных типов: строки, числа, коллекции и даже объекты. Это удобно, когда нужно работать с разными структурами данных без жёсткой привязки к конкретному типу.
Когда может быть полезен❓
🔶 интеграции, API
🔶 EAV-архитектура
🔶 многослойные пользовательские интерфейсы, и т.п.
Основное преимущество для разработчика — отсутствие необходимости хранить метаданные, а также самому реализовывать валидацию и парсинг пользовательских данных. Anydata берет всё это на себя! 🚀
А теперь решение задачки 📚
1️⃣ Процедура с параметром
2️⃣ Пример вызова
3️⃣ Вывод в консоль
🔥 Как вам задачка? Возможно, у вас тоже есть интересные кейсы с ANYDATA? Или вы придумали, как его использовать в своём проекте? Делитесь мнением в нашем чатике 💬
#PLSQL #Oracle #Pavel_Dolganov #задачка
🔗 Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋
Во вторник мы подкинули вам задачку про гибкие параметры хранимых процедур в Oracle. Спасибо всем, кто прислал решение и принял участие в жаркой
У меня есть для вас один интересный кейс, и уже в следующий четверг мы обязательно его обсудим. Следите за анонсами! 📅
А пока разберёмся с ANYDATA и решением задачки.
💡Что такое ANYDATA
Это универсальный контейнер для данных, который позволяет хранить и передавать значения разных типов: строки, числа, коллекции и даже объекты. Это удобно, когда нужно работать с разными структурами данных без жёсткой привязки к конкретному типу.
Когда может быть полезен
🔶 интеграции, API
🔶 EAV-архитектура
🔶 многослойные пользовательские интерфейсы, и т.п.
Основное преимущество для разработчика — отсутствие необходимости хранить метаданные, а также самому реализовывать валидацию и парсинг пользовательских данных. Anydata берет всё это на себя! 🚀
А теперь решение задачки 📚
1️⃣ Процедура с параметром
CREATE OR REPLACE PROCEDURE p_get_anydata_value
(
p_param IN anydata
) IS
l_anytype anytype;
l_typecode PLS_INTEGER;
l_varchar_value VARCHAR2(255 Char);
l_num_value NUMBER;
l_collection t_numbers;
l_status VARCHAR2(64 CHAR);
BEGIN
-- Проверяем тип данных в ANYDATA
l_typecode := p_param.GetType(l_anytype);
IF l_typecode IN (dbms_types.TYPECODE_NAMEDCOLLECTION
,dbms_types.TYPECODE_TABLE) THEN
-- Извлекаем коллекцию
IF p_param.GetCollection(l_collection) = dbms_types.SUCCESS THEN
l_status := 'record_count=' || l_collection.count();
ELSE
l_status := 'ошибка извлечения коллекции';
END IF;
ELSIF l_typecode = dbms_types.TYPECODE_VARCHAR2 THEN
IF p_param.GetVarchar2(l_varchar_value) = dbms_types.SUCCESS THEN
l_status := l_varchar_value;
END IF;
ELSIF l_typecode = dbms_types.TYPECODE_NUMBER THEN
IF p_param.GetNumber(l_num_value) = dbms_types.SUCCESS THEN
l_status := l_num_value;
END IF;
ELSE
l_status := 'неподдерживамый тип параметра';
END IF;
dbms_output.put_line(l_status);
END p_get_anydata_value;
/
2️⃣ Пример вызова
create or replace type t_numbers is table of number;
/
begin
dbms_output.put_line('anydata.ConvertNumber:');
p_get_anydata_value(anydata.ConvertNumber(25));
dbms_output.put_line('anydata.ConvertVarchar2:');
p_get_anydata_value(anydata.ConvertVarchar2('Это строка'));
dbms_output.put_line('anydata.ConvertCollection:');
p_get_anydata_value(anydata.ConvertCollection(t_numbers(1, 2, 3, 4, 5)));
end;
/
3️⃣ Вывод в консоль
anydata.ConvertNumber:
25
anydata.ConvertVarchar2:
Это строка
anydata.ConvertCollection:
record_count=5
🔥 Как вам задачка? Возможно, у вас тоже есть интересные кейсы с ANYDATA? Или вы придумали, как его использовать в своём проекте? Делитесь мнением в нашем чатике 💬
#PLSQL #Oracle #Pavel_Dolganov #задачка
🔗 Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
💡5 шагов к зарплате 200К+ в 2025 году!
Друзья, всем привет! 👋
Я часто получаю вопросы в личке:
❓«Денис, ну я же нормальный специалист. Опыт 5-7 лет, задачи решаю, тесты пишу, заказчик доволен… Почему я до сих пор сижу на зп 150-180К, а кто-то получает 220-250К — и это считается нормой?»
Отвечаю.
📌 В 2025 году быть просто «нормальным специалистом» уже недостаточно. Если вы хотите ЗП от 220К и выше, вы должны уметь:
✅ Писать качественный и читаемый код, применять паттерны проектирования
✅ Уметь в микросервисную архитектуру, работать с API и интеграциями
✅ Тестировать свой код через юнит-тесты
✅ Иметь навыки оптимизации SQL
✅ И главное — уметь себя продавать на рынке
🔥 И вот вам свежий кейс 🔥
Мы недавно отбирали ребят на курс. Пришел парень — всего 2 года опыта по PL/SQL, но:
🔶 у него системный подход
🔶 рассказал про свой план развития на ближайшие пару лет
🔶 ему все реально интересно
🔶 умеет себя преподнести
💥 Итог: получил оффер на 240К. Без «10 лет в банке», не имея 3х лет стажа и т.п.
Или пример того самого Паши, который в свои 23 со стажем 2,5 года уже зарабатывает 210К и планирует в этом году стать senior-разработчиком.
А теперь вопрос к вам:
👉 Вы держитесь за свои 150К с 5+ годами стажа, потому что боитесь изменений?
👉 Или потому что «ещё не время»?
👉 Или потому что не знаете, с чего начать?
👉🏻 Или просто не хотите инвестировать в свои знания?
Что бы вы ни выбрали, ответ будет один: нужно начать с себя
📅 Уже через 5 дней стартует курс «Мастер Oracle PL/SQL» — последний в этом году.
💡 Что вас ждет на курсе:
✅ Системное обучение PL/SQL от экспертов в своем деле
✅ Теория + очень много практики
✅ Классический Oracle + новинки версии 21с
✅ трехзвенка, API, юнит-тесты
✅ Сертификат об окончании, карьерная поддержка, помощь с резюме
✅ Помощь с подбором вакансий — не останетесь без работы!
💰 Окупаемость курса — 1-2 месяца на вашей новой работе.
❌ Пропустите — и следующая возможность будет только в 2026 году. А это уже другой рынок, другие конкуренты.
📌 Если давно хотели — время пришло!
Пишите в поддержку, увидимся 4 апреля
Удачи! И пусть PL/SQL принесет вам уверенность в завтрашнем дне и достойный доход! 💪
#oracle #plsql #карьера #зарплата #собеседование #резюме #курс
Канал Oracle Developer | Чатик💬
Друзья, всем привет! 👋
Я часто получаю вопросы в личке:
❓«Денис, ну я же нормальный специалист. Опыт 5-7 лет, задачи решаю, тесты пишу, заказчик доволен… Почему я до сих пор сижу на зп 150-180К, а кто-то получает 220-250К — и это считается нормой?»
Отвечаю.
📌 В 2025 году быть просто «нормальным специалистом» уже недостаточно. Если вы хотите ЗП от 220К и выше, вы должны уметь:
✅ Писать качественный и читаемый код, применять паттерны проектирования
✅ Уметь в микросервисную архитектуру, работать с API и интеграциями
✅ Тестировать свой код через юнит-тесты
✅ Иметь навыки оптимизации SQL
✅ И главное — уметь себя продавать на рынке
🔥 И вот вам свежий кейс 🔥
Мы недавно отбирали ребят на курс. Пришел парень — всего 2 года опыта по PL/SQL, но:
🔶 у него системный подход
🔶 рассказал про свой план развития на ближайшие пару лет
🔶 ему все реально интересно
🔶 умеет себя преподнести
💥 Итог: получил оффер на 240К. Без «10 лет в банке», не имея 3х лет стажа и т.п.
Или пример того самого Паши, который в свои 23 со стажем 2,5 года уже зарабатывает 210К и планирует в этом году стать senior-разработчиком.
А теперь вопрос к вам:
👉 Вы держитесь за свои 150К с 5+ годами стажа, потому что боитесь изменений?
👉 Или потому что «ещё не время»?
👉 Или потому что не знаете, с чего начать?
👉🏻 Или просто не хотите инвестировать в свои знания?
Что бы вы ни выбрали, ответ будет один: нужно начать с себя
📅 Уже через 5 дней стартует курс «Мастер Oracle PL/SQL» — последний в этом году.
💡 Что вас ждет на курсе:
✅ Системное обучение PL/SQL от экспертов в своем деле
✅ Теория + очень много практики
✅ Классический Oracle + новинки версии 21с
✅ трехзвенка, API, юнит-тесты
✅ Сертификат об окончании, карьерная поддержка, помощь с резюме
✅ Помощь с подбором вакансий — не останетесь без работы!
💰 Окупаемость курса — 1-2 месяца на вашей новой работе.
❌ Пропустите — и следующая возможность будет только в 2026 году. А это уже другой рынок, другие конкуренты.
📌 Если давно хотели — время пришло!
Пишите в поддержку, увидимся 4 апреля
Удачи! И пусть PL/SQL принесет вам уверенность в завтрашнем дне и достойный доход! 💪
#oracle #plsql #карьера #зарплата #собеседование #резюме #курс
Канал Oracle Developer | Чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
Anydata в реальном проекте: зачем и как использовать? 🎯
Друзья, всем привет! 👋
На прошлой неделе мы с вами решали задачку про Anydata.
Решение многим понравилось, но вопрос "зачем это вообще нужно на практике?" по-прежнему остается актуальным 🤔
Я обещал подкинуть вам реальный кейс – ловите! 🎯
Представьте: у вас в схеме есть интеграционный пакет, который обменивается данными со сторонним API 🌐
Или, если вам ближе DWH, пусть это будет формирование витрин по расписанию ⏳.
Задача простая – запустить произвольный PL/SQL-метод асинхронно или по расписанию.
Но вот загвоздка: каждый метод принимает разные параметры, в т.ч. коллекции, объявленные на уровне схемы.
Какое решение, кроме динамического SQL, вы могли бы предложить❓
Делитесь своими решениями в нашем чатике 💬
Разбор задачи, как обычно, в четверг 🔥
#Oracle #PLSQL #Anydata #Pavel_Dolganov #задачка
🔗 Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋
На прошлой неделе мы с вами решали задачку про Anydata.
Решение многим понравилось, но вопрос "зачем это вообще нужно на практике?" по-прежнему остается актуальным 🤔
Я обещал подкинуть вам реальный кейс – ловите! 🎯
Представьте: у вас в схеме есть интеграционный пакет, который обменивается данными со сторонним API 🌐
Или, если вам ближе DWH, пусть это будет формирование витрин по расписанию ⏳.
Задача простая – запустить произвольный PL/SQL-метод асинхронно или по расписанию.
Но вот загвоздка: каждый метод принимает разные параметры, в т.ч. коллекции, объявленные на уровне схемы.
Какое решение, кроме динамического SQL, вы могли бы предложить
Делитесь своими решениями в нашем чатике 💬
Разбор задачи, как обычно, в четверг 🔥
#Oracle #PLSQL #Anydata #Pavel_Dolganov #задачка
🔗 Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
Anydata в реальном проекте: зачем и как использовать? 🎯 Решение задачи
Друзья, всем привет! 👋🏻
Во вторник мы кидали вам практическую задачку по Anydata. Сегодня публикуем обещанное решение 👇🏻
Ключевая идея — использовать
✅ расширенное логирование запусков
✅ цепочки заданий (chains)
✅ сложные повторения
✅ программы
Более подробно об этом мы говорим на курсе Мастер Oracle PL/SQL.
Что мы делаем конкретно в этой задаче❓
1️⃣ Используем пакет
Нам понадобится:
🔶 тип данных
🔶 метод
2️⃣ Реализуем маппинг типов данных
Нам нужно сопоставить типы данных Oracle с теми, что поддерживает
В коде за это отвечает метод
3️⃣ Создаем программу
Она будет запускать асинхронно или по расписанию произвольный PL/SQL-метод.
4️⃣ Привязываем к программе параметры метода
через
5️⃣ Создаем джоб
Для передачи параметров используем
Пример вызова процедуры:
Код пакета user_jobs_pkg в комментариях к этому посту 👇🏻
Коллеги, это решение может показаться громоздким, но оно из серии "сделал и забыл".✍️
Один раз настроили, отладили - и можно вызывать асинхронно любые методы. Прелесть же?! 😉
Напишите в комментариях, что думаете по этому поводу? 🤔
Если зашло, ставьте по традиции жирный 👍🏻, мы старались.
На этом тему anydata в Oracle считаем закрытой 😊 Сорри, если она вам приелась, но для senior-разработчика это💯 полезный навык.
Друзья, также напоминаю, что уже завтра стартует счастливый1️⃣ 4️⃣ поток курса Мастер Oracle PL/SQL 🚀
Если вы хотите:
🔶 увидеть еще больше кейсов из реальных проектов;
🔶 научиться работать с трехзвенкой;
🔶 посмотреть на новинки в Oracle 21c;
🔶 наконец-то начать писать юнит-тесты;
🔶 запилить в гитхаб свой собственный крутой pet-проект🤟
, то успевайте🕙 .
Следующая такая возможность будет нескоро. 🤷♂️
#Oracle #PLSQL #Anydata #Pavel_Dolganov #задачка
🔗 Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋🏻
Во вторник мы кидали вам практическую задачку по Anydata. Сегодня публикуем обещанное решение 👇🏻
Ключевая идея — использовать
dbms_scheduler
, т.к. по сравнению с классическим dbms_job
он предлагает гораздо больше возможностей:✅ расширенное логирование запусков
✅ цепочки заданий (chains)
✅ сложные повторения
✅ программы
Более подробно об этом мы говорим на курсе Мастер Oracle PL/SQL.
Что мы делаем конкретно в этой задаче
1️⃣ Используем пакет
dbms_describe
для анализа методаНам понадобится:
🔶 тип данных
t_describe
🔶 метод
describe_procedure
, который проанализирует процедуру и поймет, какие параметры она принимает на вход.2️⃣ Реализуем маппинг типов данных
Нам нужно сопоставить типы данных Oracle с теми, что поддерживает
dbms_scheduler
.В коде за это отвечает метод
get_oratype_name
.3️⃣ Создаем программу
Она будет запускать асинхронно или по расписанию произвольный PL/SQL-метод.
4️⃣ Привязываем к программе параметры метода
через
dbms_scheduler.define_program_argument
.5️⃣ Создаем джоб
Для передачи параметров используем
sys.jobarg_array
, основанный на объекте sys.jobarg
. Пример вызова процедуры:
DECLARE
v_import_data t_credit_table;
v_arguments sys.jobarg_array;
BEGIN
IF v_import_data IS NOT empty THEN
v_arguments := sys.jobarg_array(
sys.jobarg(1, anydata.ConvertCollection(v_import_data)),
sys.jobarg(2, anydata.ConvertChar(const_pkg.c_yes)));
-- Создадим и запустим джоб
user_jobs_pkg.create_user_job(p_program_name => 'p_process_contracts',
p_program_action => $$PLSQL_UNIT || '.run_job',
p_arguments => v_arguments);
END IF;
END;
/
Код пакета user_jobs_pkg в комментариях к этому посту 👇🏻
Коллеги, это решение может показаться громоздким, но оно из серии "сделал и забыл".
Один раз настроили, отладили - и можно вызывать асинхронно любые методы. Прелесть же?! 😉
Напишите в комментариях, что думаете по этому поводу? 🤔
Если зашло, ставьте по традиции жирный 👍🏻, мы старались.
На этом тему anydata в Oracle считаем закрытой 😊 Сорри, если она вам приелась, но для senior-разработчика это
Друзья, также напоминаю, что уже завтра стартует счастливый
Если вы хотите:
🔶 увидеть еще больше кейсов из реальных проектов;
🔶 научиться работать с трехзвенкой;
🔶 посмотреть на новинки в Oracle 21c;
🔶 наконец-то начать писать юнит-тесты;
🔶 запилить в гитхаб свой собственный крутой pet-проект
, то успевайте
Следующая такая возможность будет нескоро. 🤷♂️
#Oracle #PLSQL #Anydata #Pavel_Dolganov #задачка
🔗 Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
Пятничный тест по PL/SQL
Коллеги, всем привет!
Давайте разомнемся в пятницу перед выходными 🏋🏻♀️
Вопросики по PL/SQL для уровня middle/senior.
Погнали!
—
А где-то в фоне стартовал 14й поток по PL/SQL. Ребята начинают 2.5 месячное путешествие по просторам PL/SQL. Еще есть время присоединиться 😉
Пиши в поддержку 🚀
#Oracle #PLSQL #Pavel_Dolganov #тест
🔗 Канал Oracle Developer | Чатик 💬
Коллеги, всем привет!
Давайте разомнемся в пятницу перед выходными 🏋🏻♀️
Вопросики по PL/SQL для уровня middle/senior.
Погнали!
—
А где-то в фоне стартовал 14й поток по PL/SQL. Ребята начинают 2.5 месячное путешествие по просторам PL/SQL. Еще есть время присоединиться 😉
Пиши в поддержку 🚀
#Oracle #PLSQL #Pavel_Dolganov #тест
🔗 Канал Oracle Developer | Чатик 💬
Друзья, всем привет! 👋🏻
На этой неделе у нас пройдёт особенный эфир. Сегодня мы рады представить нашего гостя — Игоря Мельникова.
👨💼 Игорь — один из наиболее авторитетных экспертов в области Oracle и PostgreSQL в русскоязычном сообществе.
До 2022 года он занимал позицию главного консультанта в Oracle СНГ, затем стал ведущим экспертом в Postgres Pro . В настоящий момент Игорь - независимый консультант, он помогает крупным компаниям в проектах, связанных с диагностикой, оптимизацией и миграцией баз данных.
🎙 Его имя хорошо известно тем, кто следит за индустрией: он выступал на PGConf.SPB, PGMeetup и других профильных конференциях и вебинарах. Игорь умеет доносить технически сложные темы ясно, точно и доступным языком.
📌 Что будет в эфире:
🔶 Переключение контекста: как работает и на что влияет
🔶 Как и для чего использовать
🔶 Технология
🔶 Расширенная статистика: как передать информацию оптимизатору при работе с табличными функциями
🔶 подходы к внедрению этих практик с минимальными издержками
📍 Эфир будет особенно полезен тем, кто:
✅ пишет или ревьюит PL/SQL-код
✅ оптимизирует производительность БД
✅ хочет «выжать» максимум из существующего кода без его переписывания
📅 Эфир: четверг, 24 апреля
🕖 Время: 19:00 МСК
🎦 Формат: live-разбор + ответы на вопросы
📬 Ссылка будет опубликована в день эфира — рекомендуем включить уведомления
⚠️ Записи не будет — приходите вовремя. Ограничение в эфире - 100 мест.
Ждём вас!
#oracle #plsql #performance #udf #PLScope #optimizer #производительность #эксперт #анонс #вебинар
Канал Oracle Developer | Чатик💬
На этой неделе у нас пройдёт особенный эфир. Сегодня мы рады представить нашего гостя — Игоря Мельникова.
👨💼 Игорь — один из наиболее авторитетных экспертов в области Oracle и PostgreSQL в русскоязычном сообществе.
До 2022 года он занимал позицию главного консультанта в Oracle СНГ, затем стал ведущим экспертом в Postgres Pro . В настоящий момент Игорь - независимый консультант, он помогает крупным компаниям в проектах, связанных с диагностикой, оптимизацией и миграцией баз данных.
🎙 Его имя хорошо известно тем, кто следит за индустрией: он выступал на PGConf.SPB, PGMeetup и других профильных конференциях и вебинарах. Игорь умеет доносить технически сложные темы ясно, точно и доступным языком.
🔶 Переключение контекста: как работает и на что влияет
🔶 Как и для чего использовать
pragma UDF
🔶 Технология
PL/Scope
и её использование в статическом анализе🔶 Расширенная статистика: как передать информацию оптимизатору при работе с табличными функциями
🔶 подходы к внедрению этих практик с минимальными издержками
📍 Эфир будет особенно полезен тем, кто:
✅ пишет или ревьюит PL/SQL-код
✅ оптимизирует производительность БД
✅ хочет «выжать» максимум из существующего кода без его переписывания
📅 Эфир: четверг, 24 апреля
🕖 Время: 19:00 МСК
🎦 Формат: live-разбор + ответы на вопросы
📬 Ссылка будет опубликована в день эфира — рекомендуем включить уведомления
⚠️ Записи не будет — приходите вовремя. Ограничение в эфире - 100 мест.
Ждём вас!
#oracle #plsql #performance #udf #PLScope #optimizer #производительность #эксперт #анонс #вебинар
Канал Oracle Developer | Чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
Друзья, всем привет! 👋
Напоминаем, что сегодня в 19:00 по МСК состоится мощный технический эфир в Zoom:
«PL/SQL-функции в SQL-запросах: где теряются миллисекунды?» 🎯
Спикер — Игорь Мельников: экс-главный консультант Oracle и Postgres Pro, эксперт по оптимизации с 20+ годами опыта 👨🏻💻
Поговорим о:
🔶 Переключении контекста между SQL и PL/SQL
🔶 PRAGMA UDF и её применении
🔶 Рефакторинге через PL/Scope
🔶 Табличных функциях и планах выполнения
🔶 Том, как внедрить всё это быстро и без боли.
📌 Подойдёт PL/SQL-разработчикам, архитекторам и всем, кто хочет, чтобы «летало» 🚀
📹 Формат: доклад + вопросы
⚠️ Записи не будет! 100 мест. Только эфир, живое общение и шанс задать свой вопрос.
Ссылку пришлём в канал ближе к началу.
Включай уведомления, чтобы не пропустить.
Увидимся! 😉
#oracle #plsql #performance #оптимизация #анонс #вебинар
Канал Oracle Developer | Чатик 💬
Напоминаем, что сегодня в 19:00 по МСК состоится мощный технический эфир в Zoom:
«PL/SQL-функции в SQL-запросах: где теряются миллисекунды?» 🎯
Спикер — Игорь Мельников: экс-главный консультант Oracle и Postgres Pro, эксперт по оптимизации с 20+ годами опыта 👨🏻💻
Поговорим о:
🔶 Переключении контекста между SQL и PL/SQL
🔶 PRAGMA UDF и её применении
🔶 Рефакторинге через PL/Scope
🔶 Табличных функциях и планах выполнения
🔶 Том, как внедрить всё это быстро и без боли.
📹 Формат: доклад + вопросы
Ссылку пришлём в канал ближе к началу.
Включай уведомления, чтобы не пропустить.
Увидимся! 😉
#oracle #plsql #performance #оптимизация #анонс #вебинар
Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
Учиться у тех, кто сам не перестаёт учиться ✨
Друзья, всем привет! 👋
Мы продолжаем делиться с вами важными новостями из жизни нашей онлайн-школы! 📚
В январе мы писали пост о получении лицензии Минобразования. Но решили на этом не останавливаться! 😉
Денис и Павел прошли профессиональную переподготовку и получили квалификацию «педагог дополнительного образования»! 🎓🎉
Да-да, теперь мы не только крутые практики с многолетним опытом в разработке, но и дипломированные преподаватели! 🔥
И это не просто «красивая бумажка» — это подтверждение того, что мы умеем и можем обучать на уровне, соответствующем государственным стандартам. 💪
Каждый из нас пришёл в преподавание своей дорогой:
🔶 Денису предложили провести внутреннее обучение в QIWI, где он тогда работал 💼
🔶 Павел ещё в университете больше прислушивался к предпринимателям, которые иногда приезжали читать лекции.
Со временем мечта превратилась в хобби, которое, в свою очередь, выросло в полноценную онлайн-школу. Поэтому получение педагогического образования стало логичным шагом на пути к развитию. Ведь одно дело — объяснять «на пальцах» в узком кругу, а совсем другое — выступать перед широкой аудиторией и подавать материал так, чтобы «понял даже лабрадор», как любит говорить Денис. 😉
Что это даёт онлайн-школе❓
🔸 Более качественные и гибкие программы с учётом методических стандартов
🔸 Прозрачность и легитимность — особенно важно для корпоративного обучения
🔸 Авторитет. У кого вы предпочтёте учиться:
— у человека, который «и швец, и жнец, и один в поле воин»,
— или у команды, которая постоянно развивается, получает дополнительное образование и привлекает таких же энергичных, объединённых общей идеей инженеров?
А что это даёт вам — нашим студентам❓
✅ Уверенность в том, что вы учитесь у тех, кто знает не только «как работает», но и как объяснить «так, чтобы дошло».
✅ Эффективные обучающие программы: никакой воды, только то, что действительно помогает развиваться.
✅ Индивидуальный подход: мы знаем, что все студенты индивидуальны, поэтому адаптируем стиль и содержание уроков под ваши способности и потребности. 🎯
Что же дальше❓
Дальше — ещё интереснее! 🤟🏻
Мы уже работаем над запуском новых курсов, где обязательно применим наши новые знания и навыки. А ещё усиливаем команду и продолжаем делать качественный контент, чтобы вам было ещё легче и увлекательнее учиться. 🌟
Спасибо, что вы с нами! ❤️
Идём дальше 🚀
#oracle #карьера #диплом #сертификация #эксперт #plsql
Канал Oracle Developer | Чатик💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, всем привет! 👋
Мы продолжаем делиться с вами важными новостями из жизни нашей онлайн-школы! 📚
В январе мы писали пост о получении лицензии Минобразования. Но решили на этом не останавливаться! 😉
Денис и Павел прошли профессиональную переподготовку и получили квалификацию «педагог дополнительного образования»! 🎓🎉
Да-да, теперь мы не только крутые практики с многолетним опытом в разработке, но и дипломированные преподаватели! 🔥
И это не просто «красивая бумажка» — это подтверждение того, что мы умеем и можем обучать на уровне, соответствующем государственным стандартам. 💪
Каждый из нас пришёл в преподавание своей дорогой:
🔶 Денису предложили провести внутреннее обучение в QIWI, где он тогда работал 💼
🔶 Павел ещё в университете больше прислушивался к предпринимателям, которые иногда приезжали читать лекции.
Со временем мечта превратилась в хобби, которое, в свою очередь, выросло в полноценную онлайн-школу. Поэтому получение педагогического образования стало логичным шагом на пути к развитию. Ведь одно дело — объяснять «на пальцах» в узком кругу, а совсем другое — выступать перед широкой аудиторией и подавать материал так, чтобы «понял даже лабрадор», как любит говорить Денис. 😉
Что это даёт онлайн-школе❓
🔸 Более качественные и гибкие программы с учётом методических стандартов
🔸 Прозрачность и легитимность — особенно важно для корпоративного обучения
🔸 Авторитет. У кого вы предпочтёте учиться:
— у человека, который «и швец, и жнец, и один в поле воин»,
— или у команды, которая постоянно развивается, получает дополнительное образование и привлекает таких же энергичных, объединённых общей идеей инженеров?
А что это даёт вам — нашим студентам❓
✅ Уверенность в том, что вы учитесь у тех, кто знает не только «как работает», но и как объяснить «так, чтобы дошло».
✅ Эффективные обучающие программы: никакой воды, только то, что действительно помогает развиваться.
✅ Индивидуальный подход: мы знаем, что все студенты индивидуальны, поэтому адаптируем стиль и содержание уроков под ваши способности и потребности. 🎯
Что же дальше❓
Дальше — ещё интереснее! 🤟🏻
Мы уже работаем над запуском новых курсов, где обязательно применим наши новые знания и навыки. А ещё усиливаем команду и продолжаем делать качественный контент, чтобы вам было ещё легче и увлекательнее учиться. 🌟
Спасибо, что вы с нами! ❤️
Идём дальше 🚀
#oracle #карьера #диплом #сертификация #эксперт #plsql
Канал Oracle Developer | Чатик
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️Одна из ТОП-болей Oracle-разработчика
Друзья, привет! Сохраните пост, чтобы показать тим-лиду и закрыть вечные споры на ревью 😉
БОЛЬ: Отсутствие единой системы стандартов форматирования кода в ORACLE❌
Как происходит в реальной жизни?
Приходишь в новый проект, открываешь код и получаешь мешанину из запросов.
У одного всё ЗАГЛАВНЫМИ, у другого строчными, третий чередует регистр через слово. Кто-то называет таблицы во множественном числе «Users», кто-то с префиксом tab_ - "tab_users", а где-то всплывает «user_tbl». Запросы форматируются как попало.
Каждый уверен: «Я так привык — значит, правильно». Единого документа нет, ревью превращается в мини-баттл, новичок тратит месяц, чтобы только «раскусить» локальные правила.
❌ СУТЬ ПРОБЛЕМЫ
У Oracle по-прежнему нет официального «ГОСТа» (и не будет) на оформление PL/SQL: нет аналога PEP-8 как в Python или Google-кодстайла как для Java. Всё держится на устных договорённостях и личных привычках. Каждая компания — маленькое «княжество» со своим письмом.
Итог хаоса
• читаемость падает;
• ревью затягиваются;
• баги всплывают на проде, потому что «не заметил в каше»;
• время онбординга увеличивается и т.п.
📉 К чему это приводит
Представьте, что всю жизнь ездили с левым рулём, а потом внезапно пересели на правый.
Первые дни — скорость падает, концентрация уходит в ноль, ошибок становится больше.
То же и с кодом: каждый новый проект — переучивание с нуля.
А бизнес-дедлайны никто не отменял: сроки горят, деньги утекают, команда нервничает.
🛠 Как можно это решить (и заработать очки в карму)🔥
1️⃣ Соберите мини-круг: пару тимлидов + самых заинтересованных разработчиков.
2️⃣ Сделайте короткий чек-лист с описанием:
– единый регистр для ключевых слов и идентификаторов;
– общие префиксы/постфиксы для таблиц, индексов и других объектов;
– правила именования пакетов, процедур и др.;
– правила написания комментариев и многое другое;
желательно, чтобы правила форматирования можно было задать в IDE.
3️⃣ Автоматизируйте проверку: поставьте любой SQL-formatter/linter в pre-commit.
4️⃣ Зашейте правило в CI: пока линтер красный, код не пройдёт.
5️⃣ Загрузите документ в Confluence и прикрепите ссылку в шаблон PR/MR.
6️⃣ Проведите мит-ап для разработчиков: объясните «зачем» это нужно.
⚠️ Важный момент: переформатирование существующей кодовой базы может выполняться по-разному. Команда выбирает, как лучше сделать.
💡 Фишка для проактивных
Видишь хаос? Предложи драфт-стандарт сам. Так ты:
• ускоряешь ревью;
• качаешь личный бренд «не ноет — решает»;
• чаще всего получаешь плюсик к росту до тимлида.
⚖️ Итог
Кодстайл — это не про «перфекционизм ради перфекционизма».
Это договорённость, которая превращает личные заготовки в командный актив.
Чем раньше вы договоритесь, тем меньше боли, нервов и денег потеряете.
📌 Сохрани себе и отправь тимлиду. Пусть стандарты работают, а люди пишут бизнес-логику, а не расставляют пробелы вручную.
А какие стандарты у вас были при смене работы, пишите в Чатик 💬 посмотрим, что за дичь есть на просторах.
Если пост наберет 100 🔥 расскажу как мы в Qiwi-решали эту проблему c автоматической проверкой PL/SQL-кода в CI. Проблема не простая, в виду того, что разработчики пользовались аж четырьмя разными IDE.
#Oracle #PLSQL #кодстайл #teamlead #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Друзья, привет! Сохраните пост, чтобы показать тим-лиду и закрыть вечные споры на ревью 😉
БОЛЬ: Отсутствие единой системы стандартов форматирования кода в ORACLE❌
Как происходит в реальной жизни?
Приходишь в новый проект, открываешь код и получаешь мешанину из запросов.
У одного всё ЗАГЛАВНЫМИ, у другого строчными, третий чередует регистр через слово. Кто-то называет таблицы во множественном числе «Users», кто-то с префиксом tab_ - "tab_users", а где-то всплывает «user_tbl». Запросы форматируются как попало.
Каждый уверен: «Я так привык — значит, правильно». Единого документа нет, ревью превращается в мини-баттл, новичок тратит месяц, чтобы только «раскусить» локальные правила.
❌ СУТЬ ПРОБЛЕМЫ
У Oracle по-прежнему нет официального «ГОСТа» (и не будет) на оформление PL/SQL: нет аналога PEP-8 как в Python или Google-кодстайла как для Java. Всё держится на устных договорённостях и личных привычках. Каждая компания — маленькое «княжество» со своим письмом.
Итог хаоса
• читаемость падает;
• ревью затягиваются;
• баги всплывают на проде, потому что «не заметил в каше»;
• время онбординга увеличивается и т.п.
📉 К чему это приводит
Представьте, что всю жизнь ездили с левым рулём, а потом внезапно пересели на правый.
Первые дни — скорость падает, концентрация уходит в ноль, ошибок становится больше.
То же и с кодом: каждый новый проект — переучивание с нуля.
А бизнес-дедлайны никто не отменял: сроки горят, деньги утекают, команда нервничает.
🛠 Как можно это решить (и заработать очки в карму)🔥
1️⃣ Соберите мини-круг: пару тимлидов + самых заинтересованных разработчиков.
2️⃣ Сделайте короткий чек-лист с описанием:
– единый регистр для ключевых слов и идентификаторов;
– общие префиксы/постфиксы для таблиц, индексов и других объектов;
– правила именования пакетов, процедур и др.;
– правила написания комментариев и многое другое;
желательно, чтобы правила форматирования можно было задать в IDE.
3️⃣ Автоматизируйте проверку: поставьте любой SQL-formatter/linter в pre-commit.
4️⃣ Зашейте правило в CI: пока линтер красный, код не пройдёт.
5️⃣ Загрузите документ в Confluence и прикрепите ссылку в шаблон PR/MR.
6️⃣ Проведите мит-ап для разработчиков: объясните «зачем» это нужно.
⚠️ Важный момент: переформатирование существующей кодовой базы может выполняться по-разному. Команда выбирает, как лучше сделать.
💡 Фишка для проактивных
Видишь хаос? Предложи драфт-стандарт сам. Так ты:
• ускоряешь ревью;
• качаешь личный бренд «не ноет — решает»;
• чаще всего получаешь плюсик к росту до тимлида.
⚖️ Итог
Кодстайл — это не про «перфекционизм ради перфекционизма».
Это договорённость, которая превращает личные заготовки в командный актив.
Чем раньше вы договоритесь, тем меньше боли, нервов и денег потеряете.
📌 Сохрани себе и отправь тимлиду. Пусть стандарты работают, а люди пишут бизнес-логику, а не расставляют пробелы вручную.
А какие стандарты у вас были при смене работы, пишите в Чатик 💬 посмотрим, что за дичь есть на просторах.
Если пост наберет 100 🔥 расскажу как мы в Qiwi-решали эту проблему c автоматической проверкой PL/SQL-кода в CI. Проблема не простая, в виду того, что разработчики пользовались аж четырьмя разными IDE.
#Oracle #PLSQL #кодстайл #teamlead #Denis_Kivilev
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀