Обложка канала

Oracle Developer👨🏻‍💻

Все о разработке в СУБД "Oracle" SQL, PL/SQL, оптимизация, архитектура, сертификации и многое другое.

Oracle Developer👨🏻‍💻

5 лет назад
Открыть в
Задача: постановка в посте вторника. Решение: Функцию COALESCE я упомянул еще на прошлой недели в качестве альтернативы NVL. Однако, опрос вторника немного удивляет 😉 Основные отличия от NVL 1️⃣ Функция может принимать более двух аргументов. 2️⃣ Используется короткозамкнутое вычисление (short-circuit evaluation), т.е. аргументы вычисляются по мере надобности. 3️⃣ В coalesce все аргументы должны быть одного типа. NVL - неявно преобразует тип второго аргумента к первому. Есть особенности, см. доку ⚠️ 4️⃣ Функция относится к ANSI SQL, может быть использована в других РСУБД. NVL - чисто Оракловая поделка. 5️⃣ Отличия в выполнении запросов. Согласно п.2. правильный ответ: 5 секунд. Функция не будет вычислять ни второй, ни третий аргументы, т.к. первый аргумент не null. Дополнительная задачка на подумать: выполнится или нет? select nvl(10, 'abc') from dual; — В новом году, можно начать изучать PL/SQL с опытным наставником. Переходите на темную сторону 😈 #решениезадачи #функции #nvl #coalesce