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

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

Отец-основатель: @denis_dbd Кивилёв Денис
Download Telegram
"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 | Чатик 💬
This media is not supported in your browser
VIEW IN TELEGRAM
Тест по PL/SQL

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

Давайте разомнемся в понедельник 🏋🏻‍♀️
10 вопрос по PL/SQL для уровня junior/middle.
Чекните свой уровень 😊

Погнали!
Forwarded from Pavel V
Какой из следующих примеров не является литералом?
Anonymous Quiz
8%
'2023-10-01'
6%
3.1415926
33%
TO_DATE('2023-10-01', 'YYYY-MM-DD')
53%
NULL
Forwarded from Pavel V
Forwarded from Pavel V
Что будет выведено на экран в результате работы анонимного блока на скрине выше?
Anonymous Quiz
72%
1: Alice 2: Bob
3%
1: Alice 2: Alice
24%
Будет ошибка компиляции из-за одинакового названия идентификаторов
1%
1: Alice 2: <NULL>
Forwarded from Pavel V
Forwarded from Pavel V
Forwarded from Pavel V
Forwarded from Pavel V
Что произойдёт в результате выполнения анонимного блока на скрине выше?
Anonymous Quiz
12%
Зависит от версии Oracle
23%
Выдаст ошибку ORA-06550
4%
Выведет числа от 1 до 3 с шагом 1
61%
Выведет числа от 1 до 3 с шагом 0.5
Forwarded from Pavel V
Создан пользовательский объект на уровне схемы: CREATE TYPE person_typ AS OBJECT (...).
Можно ли сравнить между собой два экземпляра person_typ?
Anonymous Quiz
30%
Можно, сравнивая попарно значения атрибутов
12%
Можно, если реализовать метод сравнения MAP или ORDER
48%
Можно в обоих вышеперечисленных случаях
10%
Нет
Forwarded from Pavel V
Forwarded from Pavel V
Вам на ревью прислали код функции со скрина выше. Функция принимает на вход логин, старый и новый пароль, после чего обновляет для этого логина старый пароль на новый. Приняли бы такой pull-request?
Anonymous Quiz
5%
Нет, т.к. из-за отсутствия bind-переменных код выглядит неэффективным
18%
Нет, т.к. из-за конкатенации SQL выглядит уязвимым для SQL-инъекций
69%
Нет из-за обеих вышеперечисленных причин
7%
Да
Forwarded from Pavel V
Почему страх перемен мешает развитию карьеры?

Привет, друзья! 👋

Сегодня поговорим об одной из самых больших преград на пути к профессиональному росту — страхе перемен. Если вы замечали за собой мысли вроде:
😱 "А вдруг у меня не получится?"
😱
"Я потеряю то, что уже есть."
😱 "Зачем менять, когда и так всё нормально?"
...этот пост для вас.

🚧 Страх перемен: откуда он берётся?

1️⃣ Неуверенность в себе. Мы часто недооцениваем свои силы и достижения, считая себя недостаточно подготовленными. Это усугубляется отсутствием опыта или синдромом самозванца.
2️⃣ Привязанность к стабильности. Привычная рутина становится зоной комфорта, даже если она не приносит радости. Страх потерять гарантированный доход или привычный коллектив сковывает.
3️⃣ Страх провала. Ошибки пугают, но мы забываем, что именно провалы дают нам важные уроки и толкают к развитию.

📉 Как страх перемен мешает карьере?

🔸 Вы упускаете возможности — не решаетесь на более сложные задачи или переход в крупную компанию.
🔸 Ваша зарплата застывает — без развития навыков теряется конкурентоспособность.
🔸 Растёт риск выгорания — монотонная работа без вызовов убивает интерес к профессии.

Реальные истории преодоления

🔹 Марат, 39 лет, Екатеринбург.
Работал разработчиком с зарплатой 140 тыс. руб. и боялся менять работу. После обучения систематизировал знания, уверенность выросла, и через 2 месяца он устроился на новую должность с зарплатой 250 тыс. руб.

🔹 Алексей, 28 лет, Москва.
Администратор процессинга с доходом 120 тыс. руб. На курсе осознал пробелы в знаниях, применил новые навыки, получил повышение и увеличил доход на 50%.

🔹 Ирина, QA-инженер.
Боялась стать тимлидом. После освоения soft-skills на курсе руководит командой и увеличила доход с 150 тыс. до 300 тыс. руб.

🚀 Как преодолеть страх перемен?

1️⃣ Проработайте сомнения
Осознайте, что страх часто преувеличен. Что худшего может произойти?

2️⃣ Начните с малого
Освойте новые навыки или обсудите новые обязанности с начальством.

3️⃣ Учитесь
Знания помогают преодолеть синдром самозванца и повысить уверенность.

4️⃣ Работайте с наставником
Ментор подскажет ваши сильные стороны и направит вас.

5️⃣ Сделайте первый шаг
Подайте резюме, начните обучение, возьмите новый проект.

#карьера #oracle #развитие #оптимизация
Канал Oracle Developer | Чатик 💬
📊 Как узнать количество строк в каждой таблице с помощью одного SQL-запроса?

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

Хотите быстро узнать количество строк во всех таблицах базы данных, но без ресурсоемкого SELECT COUNT(*) для каждой? Ловите лайфхак! ⚡️

🔎 Как это сделать?

Oracle хранит статистику о таблицах в системных представлениях USER_TABLES и ALL_TABLES. В поле NUM_ROWS содержится количество строк, зафиксированное при последнем сборе статистики.

📌 Запрос для получения данных

SELECT table_name, num_rows
FROM user_tables;


Этот SQL выдаст список таблиц и количество строк в них на момент последнего обновления статистики.

💡 Важно! Данные могут быть устаревшими. Чтобы освежить статистику, используйте:

call DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'СХЕМА');


Это особенно полезно в больших БД, где полный пересчет строк мог бы занять очень много времени.

🚀 Итог

Использование системных представлений + регулярное обновление статистики = быстрый и эффективный анализ структуры базы без лишних нагрузок.

А вы как решаете эту задачу? Делитесь в комментариях! 💬

#SQL #Oracle #оптимизация
Канал Oracle Developer | Чатик 💬