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

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

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
Наши студенты – настоящие бойцы!

Друзья, привет!

Посмотрите, какие отзывы оставляют ученики во время обучения на наших курсах. Они не просто проходят обучение – они растут, пробиваются, выходят на новый уровень! Кстати, отзыву пару дней.

❗️ Два года самостоятельного обучения – книги, YouTube, ChatGPT… но все равно ощущение, что пазл не складывается.
👉 А на курсе – четкая система, понимание причинно-следственных связей, навык писать мощные запросы.

Итог?

💥 Человек стал разбираться в оптимизации, применяет знания прямо на работе, а теперь уже планирует курс по секционированию.

Почему? Потому что обучение работает

Наши ребята не тратят годы на самостоятельные попытки – они берут готовую систему и выходят на 200К+ в разы быстрее.

💰 Следующий шаг за тобой!

На следующей неделе мы открываем анкету предзаписи на курс по "Программирование на Oracle PL/SQL".

🎯 Если ты зарабатываешь меньше 200К и хочешь вырасти в доходе, как наши ученики, то готовься – скоро старт! 🚀

#Oracle #PLSQL #Зарплата #Карьера #IT #Обучение
Канал Oracle Developer | Чатик
👍13
Динамический SQL в PL/SQL

Друзья, всем привет! 👋

Сегодня технический пост, поговорим о такой особенности 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
👍167🔥5
Отзыв от студента
Павел Долганов
Расти или стоять на месте? История одного разработчика

Друзья, всем привет! 👋

Сегодня у нас в гостях Александр, который в прошлом году прошёл обучение на курсе "Мастер 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
🔥5
Геометрическая прогрессия: простая задача с изюминкой! 🔝

Друзья, всем привет! 👋

Сегодня понедельник, а значит, самое время для технического поста ⚙️📚

Подкину вам простую, но интересную задачку из школьной программы, которая, тем не менее, запросто может встретиться вам на собеседовании 😉

Как известно, любой член геометрической прогрессии вычисляется по формуле:

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
4
🔥 Почему начальство вас не ценит и что с этим делать?

Друзья, привет!

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

Давайте разберемся, почему это происходит и что с этим делать.

Почему начальство не ценит вас?

🛑 Вы для них – ресурс, а не человек
Многие руководители воспринимают своих сотрудников как расходный материал. Вы можете выдавать на-гора отличные решения, оптимизировать запросы, спасать прод, но если вас видят просто как инструмент, вас будут использовать до последнего.

🛑 Вы не создаете видимость своей ценности
В IT-отделах часто царит культ незаметной работы – если все работает, никто этого не замечает. А если вдруг что-то сломалось, сразу находятся «виноватые». Если вы не умеете презентовать результаты своей работы, никто не будет их замечать.

🛑 Руководство не разбирается в вашей работе
Многие начальники далеки от реальных технических задач. Они не понимают, почему ваш запрос стал работать быстрее в 100 раз, что такое правильная индексация или почему вы несколько часов разбирались в сложном PL/SQL-процедуре. Для них это магия. А если они не понимают – значит, им проще это обесценить.

🛑 Вы слишком удобны
«Ну вот Ваня, он же не жалуется, он просто делает работу».
Именно так думают про специалистов, которые не качают лодку, не требуют повышения и не ставят себя как эксперт. Если вы постоянно все тащите, но не требуете отдачи, вас просто воспринимают как удобного винтика, которому ничего не нужно.

Какие ошибки совершают разработчики, терпя неадекватное начальство?

Думают, что работа говорит за них
Сколько раз было так: ты разобрал сложнейшую проблему в проде, закрыл критичный баг, оптимизировал ключевые запросы, а похвалы – ноль? В IT никто не будет восхищаться тем, что ты просто делаешь свою работу.

Ждут, что начальство заметит и само повысит
Это миф. Если вам не повышают зарплату – значит, руководство думает, что вы и так довольны. Работаете по 12 часов в сутки? Ну, значит, у вас есть внутренний драйв, а деньги вам не важны.

Боятся потерять стабильность
«Ну у нас тут коллектив хороший… Да, начальник – неадекват, но куда я пойду?»
Вот так люди годами сидят на месте, хотя могли бы расти в 2-3 раза быстрее.

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

Что делать, если начальник неадекват и не ценит вас?

🔹 Фиксируйте результаты работы
Не нужно надеяться, что кто-то заметит ваш вклад. Начните документировать свои достижения. Если вы разогнали запрос на 300%, оптимизировали хранимку, спасли дедлайн – фиксируйте это.

🔹 Учитесь продавать себя
Рынок IT – это не только хард-скиллы, но и умение подать себя. Если вас не слышат, значит, вы не говорите достаточно громко.

🔹 Перестаньте быть удобным
Начальник привык, что вы безотказный и готов работать сверхурочно? Покажите, что ваше время стоит денег. Включите в переговоры экономическую ценность своей работы.

🔹 Сравнивайте рынок и готовьтесь менять работу
Если вас не ценят – значит, где-то вас будут ценить больше. Oracle-разработчики востребованы по всему миру.

Какой вывод?

💡 Если вы чувствуете, что начальник вас не ценит – это не ваша проблема. Это ваш сигнал, что пора что-то менять.
💡 IT – это рынок, где побеждает тот, кто понимает свою ценность.

💬 Расскажите в Чатик💬, было ли у вас такое начальство, которое не ценило ваш труд? Что вы сделали?

📌 Если хотите вырасти по зарплате и найти работу, где вас реально ценят, приходите на курс "Мастер Oracle PL/SQL". Там не только хард-скиллы, но и мощный карьерный блок, который научит вас продавать себя на рынке и зарабатывать больше. 🚀

👉 АНКЕТА ПРЕДЗАПИСИ ⬅️

#карьера #oracle #PLSQL #работ
👍4🔥2
Геометрическая прогрессия: простая задача с изюминкой - решение

Друзья, всем привет! 👋

В понедельник мы предложили вам реализовать метод для вывода элементов возрастающей геометрической прогрессии. Спасибо всем, кто принял участие в обсуждении и поделился своими решениями в чатике! 🔥

С выходом 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
👍7
Сравнение объектов в PL/SQL: простая задачка на разогрев

Друзья, всем привет! 👋

Понедельник – отличный день, чтобы размять мозги над небольшой задачкой 🤔
Сегодня хотим предложить вам поближе познакомиться с объектами в 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
👍151
Сравнение объектов в PL/SQL: простая задачка на разогрев. Вебинар 📽

Друзья, всем привет! 👋🏻

Сегодня четверг - день наших тематических посиделок в 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
🔥152👍1
🚀 Марафон по Oracle PL/SQL завершён — подводим итоги!

Друзья, всем привет! 👋🏻

20 марта закончился наш марафон по Oracle PL/SQL. Мы долго к нему готовились, и это было не зря 😊 Нам удалось всего за 5 часов разобрать и обсудить с вами самые разные темы: от работы джобов до новинок Oracle 21c, от страхов и ловушек мышления до секретов карьерного роста. 📈
Спасибо всем участникам ❤️ за вашу активность и интересные вопросы - каждый день в чате было по несколько сотен сообщений 🔥
Такие эфиры ценны именно возможностью живого общения: обсудить наболевшее, задать вопросы, познакомиться с единомышленниками и почувствовать, что ты не один в этом IT-мире. 💡 Не зря мы с Павлом прямо в эфире поделились ссылками на свои профили в LinkedIn, а слушатели в ответ кидали свои приглашения. Теперь наше комьюнити стало еще больше и крепче! 😊 Спасибо вам!

🔥 Вот как это было:

1️⃣ День 1.

Мы познакомились, обсудили горячие вакансии на позиции от 230К+ 💰, продемонстрировали новые возможности PL/SQL и вместе разобрали тот самый тест.
Ребята получили ДЗ: задачку из реального тестового задания, и моментально включились в работу — свои решения прислали почти все 🔝.

2️⃣ День 2.

День начался с обратной связи по предыдущей встрече, затем мы разобрали некоторые из присланных домашек, после чего показали
решение уровня Senior. В целом день был посвящен разнице между Middle и Senior-разработчиками. К нам в гости заглянули наши студенты и поделились своими успехами 😎. Один из ребят внедрил многопоточность у себя на проекте и в разы ускорил критически важный процесс в банке. Сказал, что даже топ-менеджмент оценил! 💪🏻 И кстати, обучение он проходил как раз за счет работодателя, и тот уже убедился, что вложения себя оправдали. 🚀

3️⃣ День 3.

Заключительный день был про карьеру. Наша карьерная фея Люба рассказала, как в текущих условиях рынка оставаться востребованным и выделяться среди других кандидатов. Мы прожарили 🔥 несколько резюме в прямом эфире, указав слушателям на типовые ошибки кандидатов .
Затем был рассказ про то, каким может быть ваш карьерный путь вместе с нами 🫂 А в конце небольшое демо курса и розыгрыш 🎁: скидки на обучение, консультации с нами, материалы.

Отзывы участников говорят сами за себя:
🔥 «Теперь у меня чёткий план, что учить и куда двигаться»
🔥 «Спасибо за интересные задачки»
🔥 «Системная и полезная информация. Очень полезно»

Те, кто был на марафоне вместе с нами - можете оставить свои отзывы в нашем чатике 💬

🎓 Самое главное — это была не просто теория, а реальный план карьерного роста.

📌 Курс "Основы Oracle PL/SQL" (14 поток) стартует уже 4 апреля, анкета предзаписи открыта:
👉 Анкета на предзапись!

Успейте записаться до повышения цен и стартуйте весну с прокачкой!

Пишите в поддержку 👈 — поможем с выбором формата обучения 🚀

К слову, если кто-то считает, что нюансы Oracle 21c на рынке не востребованы, то вот вам небольшая история:
Вчера у нас прошла очередная встреча на потоке по оптимизации. В конце дня мы разбирали кейс одного из студентов, и тут как раз отлично зашел SQL Macro — свежая фишка 21-й версии. Когда ребята увидели, как это работает, один из учеников вспомнил, что на недавнем собеседовании его как раз спрашивали про отличия между 19 и 21 версиями. Компания готовится обновлять продуктивный стенд. 🚀


И напоследок: не бойтесь ставить перед собой амбициозные цели! Возможно, именно вы станете одним из наших выпускников, который выйдет на международный уровень и будет работать с последними версиями Oracle на топовых проектах. 🚀

#марафон #oracle #plsql #карьера
Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
💡 Хранимая процедура с секретом – разберешься?

Друзья, всем привет! 👋

Прошлая неделя прошла под флагом PL/SQL-марафона (подробности были тут). Судя по отзывам, он вам зашел! 🚀 Мы уже готовим серию вебинаров на откликнувшиеся вам темы. 🔥 Но перед этим — небольшая задачка, решение которой вам скоро пригодится 😉

Итак,
💡 Задача:
Нужно написать хранимую процедуру, которая принимает параметр любого типа и выводит его значение на экран.
⭐️ Дополнительное задание для знатоков: если параметр типа nested table, вывести количество записей в коллекции.

Простая задача? Давайте проверим! 😏

Делитесь своими решениями в нашем чатике 💬

📅 Разбор задачи будет в четверг, так что следите за обновлениями! 👀

#PLSQL #Oracle #Pavel_Dolganov #задачка

🔗 Канал Oracle Developer | Чатик💬
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍1
💡 Хранимая процедура с секретом – разберешься?

Друзья, всем привет! 👋

Во вторник мы подкинули вам задачку про гибкие параметры хранимых процедур в Oracle. Спасибо всем, кто прислал решение и принял участие в жаркой 🔥 дискуссии! Многие сразу догадались, что речь идёт про ANYDATA. Но главный вопрос: а зачем это вообще нужно на практике? 🤔

У меня есть для вас один интересный кейс, и уже в следующий четверг мы обязательно его обсудим. Следите за анонсами! 📅

А пока разберёмся с 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
👍141
💡 Как не завалить первое интервью и получить оффер?

Друзья, всем привет! 👋

Весна в самом разгаре 🌱, всё вокруг обновляется, и многие из вас начинают задумываться о смене работы.
Как вы помните, я уже не раз делился внутрянкой найма ораклистов в РФ.
Меня до сих пор спрашивают в личке, как сейчас обстоят дела на рынке и к чему готовиться на собеседовании.

Об этом мы сегодня и поговорим 💬

📌 1. Технический блок собеседования: что спрашивают?

❗️ Прежде всего, хочу напомнить, что осенью я уже выпускал подробные посты и видео-интервью на эту тему: раз, два, три, четыре, пять.

Если вы их ещё не читали или не смотрели — очень советую.

Во-первых, никаких кардинальных изменений в технических вопросах с того времени не произошло.

🔍 По-прежнему спрашивают про:
Коллекции (ассоциативные массивы, вложенные таблицы, varrays)
Курсоры (явные, неявные, REF CURSOR)
Юнит-тестирование в PL/SQL
Планы запросов и индексы (оптимизация, статистика, cost-based optimizer)
Секционирование

Во-вторых, успешное прохождение собеседований — это тоже навык, который требует тренировки. Поэтому будет полезно нажать на паузу и подумать: а как бы ты ответил на этот вопрос? 🤔

📌 2. Сегодняшний рынок — на стороне работодателя

Если вы были на наших карьерных вебинарах, то уже знаете: рынок сейчас на стороне работодателя. И если раньше он мог закрыть глаза на небольшие пробелы, то теперь ищет сильных специалистов.
Поэтому важно не просто отвечать на вопросы, а делать это лучше остальных кандидатов.

Как думаете, кому охотнее сделают оффер?
😎 Кандидату, который ответил на все вопросы за 10 минут?
😬 Или тому, кто мямлил и чесал репу, вспоминая, чем отличается FOR от FORALL?

А кому будут подкидывать каверзные вопросы, типа такого:

Есть две таблицы из одного поля. В таблице A 7 строк, во всех null. В таблице B 5 строк, во всех также null.
Сколько строк вернет запрос из этих двух таблиц с inner join?
C left join?
C right join?
C full join?


📌 3. Готовьтесь заранее!

Наша карьерная фея Люба настоятельно рекомендует готовиться к техническому блоку заранее.💡
Может так случиться, что первое же собеседование окажется тем самым. Будет обидно завалить его из-за мелочей 🤷‍♂️

Если не уверены в своих силах — велком к нам на мок-собеседование.
Сейчас явно не то время, чтобы идти к офферу мечты методом проб и ошибок. 🔥

Друзья, напоминаем вам, что совсем скоро стартует 14-й поток курса Мастер Oracle PL/SQL 🎓
Если вы не знаете:
🔶 как с помощью ассоциативных массивов ускорить работу приложения
🔶 чем отличается dbms_job от dbms_scheduler
🔶 что такое юнит-тесты и зачем они нужны
🔶 как сделать пользовательские блокировки эффективными
🔶 о чем говорит ошибка "состояние пакета было сброшено" и т.п.,

то успевайте 🕙.

Возможно, именно эти знания помогут вам получить оффер вашей мечты. 🚀

Пишите в комментариях, как у вас проходили собеседования, были ли неожиданные вопросы? 💬

#Карьера #Oracle #PLSQL #Собеседование

🔗 Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥2
💡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 | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
4🤷‍♂2👍2
Anydata в реальном проекте: зачем и как использовать? 🎯

Друзья, всем привет! 👋

На прошлой неделе мы с вами решали задачку про Anydata.
Решение многим понравилось, но вопрос "зачем это вообще нужно на практике?" по-прежнему остается актуальным 🤔

Я обещал подкинуть вам реальный кейс – ловите! 🎯

Представьте: у вас в схеме есть интеграционный пакет, который обменивается данными со сторонним API 🌐
Или, если вам ближе DWH, пусть это будет формирование витрин по расписанию .

Задача простая – запустить произвольный PL/SQL-метод асинхронно или по расписанию.

Но вот загвоздка: каждый метод принимает разные параметры, в т.ч. коллекции, объявленные на уровне схемы.

Какое решение, кроме динамического SQL, вы могли бы предложить

Делитесь своими решениями в нашем чатике 💬

Разбор задачи, как обычно, в четверг 🔥

#Oracle #PLSQL #Anydata #Pavel_Dolganov #задачка

🔗 Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Anydata в реальном проекте: зачем и как использовать? 🎯 Решение задачи

Друзья, всем привет! 👋🏻

Во вторник мы кидали вам практическую задачку по 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-разработчика это 💯 полезный навык.

Друзья, также напоминаю, что уже завтра стартует счастливый 1️⃣4️⃣ поток курса Мастер Oracle PL/SQL 🚀

Если вы хотите:
🔶 увидеть еще больше кейсов из реальных проектов;
🔶 научиться работать с трехзвенкой;
🔶 посмотреть на новинки в Oracle 21c;
🔶 наконец-то начать писать юнит-тесты;
🔶 запилить в гитхаб свой собственный крутой pet-проект 🤟

, то успевайте 🕙.
Следующая такая возможность будет нескоро. 🤷‍♂️

#Oracle #PLSQL #Anydata #Pavel_Dolganov #задачка

🔗 Канал Oracle Developer | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Пятничный тест по PL/SQL

Коллеги, всем привет!

Давайте разомнемся в пятницу перед выходными 🏋🏻‍♀️
Вопросики по PL/SQL для уровня middle/senior.

Погнали!


А где-то в фоне стартовал 14й поток по PL/SQL. Ребята начинают 2.5 месячное путешествие по просторам PL/SQL. Еще есть время присоединиться 😉
Пиши в поддержку 🚀

#Oracle #PLSQL #Pavel_Dolganov #тест
🔗 Канал Oracle Developer | Чатик 💬
🔥3
Друзья, всем привет! 👋🏻

На этой неделе у нас пройдёт особенный эфир. Сегодня мы рады представить нашего гостя — Игоря Мельникова.

👨‍💼 Игорь — один из наиболее авторитетных экспертов в области 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
🔥22👍53
Друзья, всем привет! 👋

Напоминаем, что сегодня в 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 | Чатик 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍62
Учиться у тех, кто сам не перестаёт учиться

Друзья, всем привет! 👋

Мы продолжаем делиться с вами важными новостями из жизни нашей онлайн-школы! 📚

В январе мы писали пост о получении лицензии Минобразования. Но решили на этом не останавливаться! 😉

Денис и Павел прошли профессиональную переподготовку и получили квалификацию «педагог дополнительного образования»! 🎓🎉

Да-да, теперь мы не только крутые практики с многолетним опытом в разработке, но и дипломированные преподаватели! 🔥
И это не просто «красивая бумажка» — это подтверждение того, что мы умеем и можем обучать на уровне, соответствующем государственным стандартам. 💪

Каждый из нас пришёл в преподавание своей дорогой:
🔶 Денису предложили провести внутреннее обучение в 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
🔥22👍62
⚙️Одна из ТОП-болей 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 | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
🔥67👍63