Сравнение объектов в 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 | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀