Получи случайную криптовалюту за регистрацию!

Oracle Developer👨🏻‍💻

Логотип телеграм канала @oracle_dbd — Oracle Developer👨🏻‍💻 O
Логотип телеграм канала @oracle_dbd — Oracle Developer👨🏻‍💻
Адрес канала: @oracle_dbd
Категории: Технологии
Язык: Русский
Страна: Россия
Количество подписчиков: 2.84K
Описание канала:

ТОП канал о разработке в СУБД Oracle:
SQL, PL/SQL, оптимизация, архитектура, сертификации и многое другое...
Автор канала: Кивилёв Денис @denis_dbd
Сотрудничество, обучение, вопросы, мнения - пишите.
Youtube-канал: https://www.youtube.com/c/OracleDBD

Рейтинги и Отзывы

4.50

2 отзыва

Оценить канал oracle_dbd и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

1

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения 5

2022-02-15 11:00:06
Непересекающиеся отрезки

Задача: при вставке в таблицу необходимо проверять, что новая строка не пересекается по датам с уже имеющимися в разрезе клиента.

Необходимо написать запрос проверяющий пересечения.

create table client_tariff(
client_id number(38) not null,
date_from date not null,
date_till date not null
--...
);

insert into client_tariff values
(1, date'2022-01-01', date'2022-01-10');
insert into client_tariff values
(1, date'2022-02-01', date'2022-02-13');

Примеры:
c '2022-01-10' по '2022-01-12'-- ок
с '2022-01-10' по '2022-02-01'-- ok
c '2021-12-01' по '2022-01-02' - ошибка
с '2022-01-14' по '2022-02-03'-- ошибка

Визуально можно посмотреть на рисунке:
1-й отрезок пересекается своим окончанием с уже имеющимся;
2-й отрезок пересекается своим началом с окончанием имеющегося;
и так далее. варианты могут быть различные.
“все ок” - отрезки, которые не пересекаются с имеющимися.

Решение в четверг

#задача #яндекс
705 views08:00
Открыть/Комментировать
2022-02-14 11:00:13 Oracle & Яндекс. Часть 2
Судя по всему, тема с Яндексом интересна. Продолжаю.
Оговорюсь, это мой личный опыт. У вас он может быть другим.

На декабрь месяц, было два направления для Oracle DBD:
Разработчик Oracle + OeBS
Разработчик Oracle в Яндекс.Банк
Не уверен, что специалисты до сих пор нужны, но вакансии активны.

Этапы собеседования:
общение с тим-лидом команды;
техническое собеседование;
общение с CEO направления;
финалочка с презентацией оффера.

Алгоритмического этапа для DBD решили не делать. К вопросу, как часто спрашивают про ООП и SOLID на собеседованиях на DBD - “никогда”.

Смею предположить, что вам интересен этап “техническое собеседование”.
Мне посчастливилось пройти техническое собеседование и на первую вакансию, и на вторую. Поэтому есть некоторое представление.
На техническое собеседование дают 1 час.
3-4 задачи.
Все это происходит по Zoom в реальном времени. Вы рассуждаете, пишите запросы/отвечаете, интервьюер внимательно слушает ход ваших мыслей.
Если у вас есть уточняющий вопрос по заданию - могут подсказать.
Царит вполне дружелюбная обстановка, никто вас не пытается “загнобить”.
Ребятам с Яндекса - респект. Было приятно пообщаться

Основные группы вопросов: SQL-функции, задачи на соединения, аналитические функции. На аналитику особенный упор. Еще был один общий вопрос на оптимизацию. Примерно такой.
Некоторые из задач мы уже разбирали в канале. Некоторые я еще опубликую, в измененном виде.

Пока всё. Продолжение в следующих постах

#яндекс
694 views08:00
Открыть/Комментировать
2022-02-14 11:00:13
714 views08:00
Открыть/Комментировать
2022-02-11 11:00:54 Яндекс + Oracle

Сидишь никого не трогаешь, резюме везде закрыто, работу не ищешь, и все равно, нет нет, да упадет предложение от “охотников за головами”.
В декабре опять произошла подобная история. На этот раз HR-фрилансер с позицией Oracle DBD в Яндекс. Ух, сам Яндекс(!)

Был удивлен. Зачем Яндексу Oracle-разработчики? Но, тем не менее, есть позиции, где требуется данная квалификация
Нет смысла нудить про импортозамещение, про “Oracle дорого”, про скрепы, YandexDB и т.п. Надо значит надо.

Один мой бывший коллега, на различных online-митапах, часто говорит о том, что он “прошел собеседование в Яндекс, но выбрал другую компанию”. Т.е. пройти собеседу туда считается достижением (без сарказма).

Это не одно собеседование, а целый ряд сессий. Общение по родном стеку, алгоритмическая секция, общение с руководителем и т.п. Подобрать ключик к интервьюверам сложно, но возможно.

Если вам интересно, могу рассказать о том, как это было, какие задачки спрашивали и другие подробности. И самое главное, чем в итоге все закончилось

Ребятам с Яндекса (они теперь в канале). Вы крутые, спасибо за уделенное время. Я обещаю не публиковать конкретные формулировки ваших заданий.

Всем хороших выходных!

#яндекс
778 views08:00
Открыть/Комментировать
2022-02-11 11:00:54
759 views08:00
Открыть/Комментировать
2022-02-10 13:00:04 create or replace function sys.student_pwd_verify_function(username varchar2
,password varchar2
,old_password varchar2)
return boolean is
begin
return password like '%#%' and lower(password) != lower(username);
end;
/
grant execute on sys.student_pwd_verify_function to public;

create profile student_profile
limit password_verify_function
student_pwd_verify_function container = current;

create user ivanov
identified by ivanov#
default tablespace users
temporary tablespace temp
profile student_profile;

Попытка сменить пароль на не подходящий под валидацию будет заканчиваться ошибкой:
ORA-28003: password verification for the specified password failed

"container = current" - для контейнерных БД.
Все манипуляции выполняются под привилегированным пользователем.

Оговорюсь, что подобный вопрос, я ни разу не встречал на собеседовании. Задачка, скорее, для расширения кругозора.

Перетереть в чатике

#решениезадачи #profile
849 views10:00
Открыть/Комментировать
2022-02-10 13:00:04
Задача: задать кастомное правило валидации пароля. Подробней см. пост вторника.

Решение:
В БД Oracle есть такая сущность как профиль (Profile) с помощью неё можно ограничить потребляемые пользователем ресурсы, задать различные параметры паролю, в том числе можно указать функцию валидации пароля.

Итого: создаем функцию валидации, даем грант на выполнение всем, создаем профиль, создаем пользователя с этим профилем.

продолжение ниже
817 views10:00
Открыть/Комментировать
2022-02-08 11:00:23
Задача: необходимо задать правило на сложность пароля определенным пользователям в БД.

Правила:
1. Не должен быть равным имени пользователя.
2. Должен содержать символ “#”.

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

Примеры:
alter user ivanov identified by ivanov; – ошибка
alter user ivanov identified by ivanov1; – ошибка
alter user ivanov identified by ivanov#1;-- ок

Разбор решения, как всегда, в четверг

#задача
697 views08:00
Открыть/Комментировать
2022-01-27 13:00:06
Задача: написать анонимный PL/SQL-блок, который выведет числа от 1 до 9 используя for loop. В выводе не должно быть четных чисел.

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

Проверка счетчика итерации на четное значение, используя остаток от деления (mod). Если значение четное - пропускаем эту итерацию (continue). Остаток от деления, довольно часто, используется в задачах типа, “коммитить каждые N записей”.

begin
for i in 1 .. 10 loop
if mod(i, 2) = 0 then
continue;
end if;
dbms_output.put_line(i);
end loop;
end;
/

Использование расширенного Loop в Oracle 21c.
Юзаем указание шага через by.

begin
for i in 1..10 by 2 loop
dbms_output.put_line(i);
end loop;
end;
/

Для экспериментов вполне пригодится СУБД Oracle21с XE, установленная в Docker.

И другие варианты, на которые хватит вашей фантазии
Кое-какие накидали ребята в чатике. Гранд мерси

#решениезадачи #loop
736 views10:00
Открыть/Комментировать
2022-01-25 11:00:02
Задача: написать анонимный PL/SQL-блок, который выведет числа от 1 до 9 используя for...loop.

Требуемый вывод:
1
3
5
7
9

Как минимум, эту задачу можно решить двумя способами. Версией СУБД вы не ограничены.

Обсуждение задачи, как всегда, в четверг

Велком в чатик, если хочется поделиться своим вариантом решения

#задача
543 views08:00
Открыть/Комментировать