powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как проще всего в Оракле писать if exists()
20 сообщений из 45, страница 2 из 2
как проще всего в Оракле писать if exists()
    #39868835
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDevкит северных морей,

Бронь с 9 до 18 тремя блоками, берем интервал минуту и получаем вместо трех записей 540, для переговорной комнаты и интервала 10 или 15 минут такое решение еще можно как то пропихнуть, в общем случае оно не пригодно.
даже с минутным интервалом (который не нужен) вы выходите на условно существенные объемы только если вы сбербанк и у вас по всей стране целыми днями бронируют сто тыщ переговорок в каждом мухосранском допофисе. в любом другом случае... 1e5... 1e6 строк в день за то, что критичная бизнес-функциональность будет гарантирована СУБД, а не моими криворукими коллегами? легко.

а аппелировать к "общему случаю" бессмысленно - его никогда не бывает. всегда решается конкретная задача, в конкретных условиях, и с конкретными ограничениями.
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39868857
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev-2-А как через if exists?Никак, это конструкция языка не реализованная в Oracle, делает код проще и читабельнее в тех случаях когда она требуется.Либо ты тупо отмораживаешься, либо просто туп. Вопрос ведь не в "проще и читабельнее", а в том, способен ли ты для приведенной тобой же задачи корректно использовать гипотетический if exists.
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39868858
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-iOracleDevпропущено...
Никак, это конструкция языка не реализованная в Oracle, делает код проще и читабельнее в тех случаях когда она требуется.Либо ты тупо отмораживаешься, либо просто туп. Вопрос ведь не в "проще и читабельнее", а в том, способен ли ты для приведенной тобой же задачи корректно использовать гипотетический if exists.если где-то в main таблице заблокировать комнату, то вполне
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869180
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxесли где-то в main таблице заблокировать комнату, то вполне
Именно так, или воспользоваться пакетом dbms_lock, а у ребят похоже oracle головного мозга, накидали говнорешений и полезли в бутылку.

-2-Либо ты тупо отмораживаешься, либо просто туп. Вопрос ведь не в "проще и читабельнее", а в том, способен ли ты для приведенной тобой же задачи корректно использовать гипотетический if exists.
Открой древнюю как яйца мамонта книжку "Том Кайт. Oracle для профессионалов: архитектура, методики программирования и особенности версий 9i и 10g", прочитай первую главу, и после прочтения скажи мне пожалуйста, можно корректно заменить select count(*) into l_cnt из примера на гипотетический if exists?
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869196
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev можно корректно заменить select count(*) into l_cnt из примера на гипотетический if exists?
21979065
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869221
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
iOracleDev,

Ты уж трижды лажанулся, может пора остановиться? Предлагать повсеместную сериализацию доступа с лишним if exists, вместо обработки исключения при insert/merge - весьма глупо. Пытаться слиться, напирая на более редкие случаи чуть более сложной логики, да ещё и не разбираясь в теме и пытаться спроецировать собственное незнание на других - ещё более глупо. Смешно наблюдать, как ты пытаешься выдать пользовательские блокировки dmbs_lock как некое откровение... Погляди на историю -2- и andrey_anonymous, они это знали ещё задолго до твоего знакомства с ораклом
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869230
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous 21979065
Ты не понял, -2- имеет непонятные претензии к такой конструкции в принципе. Твой вариант с дополнительным этажом в запросе как то не очень, на мой взгляд этот вариант 21979064 лучше, кроме того if предполагает возможность создать секцию else, цикл такой секцией не обладает.
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869252
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderiOracleDev,

Ты уж трижды лажанулся, может пора остановиться? Предлагать повсеместную сериализацию доступа с лишним if exists, вместо обработки исключения при insert/merge - весьма глупо. Пытаться слиться, напирая на более редкие случаи чуть более сложной логики, да ещё и не разбираясь в теме и пытаться спроецировать собственное незнание на других - ещё более глупо. Смешно наблюдать, как ты пытаешься выдать пользовательские блокировки dmbs_lock как некое откровение... Погляди на историю -2- и andrey_anonymous, они это знали ещё задолго до твоего знакомства с ораклом
Кайт дурак вы все умные, я так и понял, спасибо за науку.

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

При чем здесь вообще insert/merge, речь о чтении данных, а не о их записи, гипотетический if exists частный случай открытия курсора фетча одной строки и его закрытия, вы не используете в коде курсоры, у вас аллергия на fetch?

Хочешь пример для if exists попроще, есть настройки с флагом отправлять письма или нет, если флаг установлен, то отправить письмо, если не установлен не отправлять, где тут insert/merge?
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869280
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, нужно... Бритва оккама - PL/SQL нетранзакционный.

SY.
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869375
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev -2- имеет непонятные претензии к такой конструкции в принципе. Твой вариант с дополнительным этажом в запросе как то не очень, на мой взгляд этот вариант 21979064 лучше
1. -2- имеет очень понятные претензии к данной конструкции. Он исходит из того, что внутри ветвления предполагается работа с данными (модификация), зависящая от существования строки. Именно в этом случае конструкция может провоцировать data inconsistency. Если осознаете сей прискорбный факт - не придется нажимать так много кнопок в попытках убедить окружающих в собственной альтернативной гениальности.

2. "как-то не очень" - попробуйте отшлифовать свой взгляд на оселке реальности.

Примите в рассмотрение несколько аспектов:
- подзапрос в exists может быть сложным
- строки, отвечающие критерию, могут быть разрежены
- на втором уровне оптимизации pl/sql курсорный цикл внутренне преобразуется в bulk collect.
Проведите эксперименты, снимите трассировки, оцените в реальных ресурсах.

Кроме того, в объективной реальности существуют такие вещи, как сопровождаемость кода.
И с этой точки зрения exit в конце for-loop, кардинально меняющий смысл конструкции, хорошо просматривается только при ~пустом теле цикла. Напишите такой цикл с телом на полторы странички и устройте "коридорный тест" - попросите коллег "с листа" проинтерпретировать для Вас написанное - сможете оценить масштабы непонимания.
Фокус же с select from dual - достаточно старый, узнаваемый паттерн.
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869380
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDevДа, я считаю архитектурно правильно сделать сериализацию
...и это пройдёт. Рано или поздно Вы познакомитесь с более масштабными системами, нежели работаете сейчас - и понимание границ применимости сериализации придёт.
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869389
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous1. -2- имеет очень понятные претензии к данной конструкции. Он исходит из того, что внутри ветвления предполагается работа с данными (модификация), зависящая от существования строки. Именно в этом случае конструкция может провоцировать data inconsistency. Если осознаете сей прискорбный факт - не придется нажимать так много кнопок в попытках убедить окружающих в собственной альтернативной гениальности.
Это относится к любому запросу в теле процедурного кода, данная конструкция лишь частный случай, почему то перевозбудивший местную аудиторию именно в таком ключе.

andrey_anonymous2. "как-то не очень" - попробуйте отшлифовать свой взгляд на оселке реальности.
Может быть, я обычно не использую циклы там где требуется прочитать одну строку.
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869394
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev относится к любому запросу в теле процедурного кода
Не стоит обобщать сверх необходимого.
Сама дискуссия появилась как результат излишне общей формы исходного вопроса.
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869429
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDevя обычно не использую циклы там где требуется прочитать одну строку.
Тогда используйте прямое управление курсором, ветвитесь по cursor%found.
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869437
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousТогда используйте прямое управление курсором, ветвитесь по cursor%found.
Обычно так и делаю. Я не автор топика, просто поинтересовался чем так не угодила простая гипотетическая конструкция, частный вариант существующих механизмов, и тут понеслось
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869472
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
iOracleDevпросто поинтересовалсяна полторы страницы слабосвязного бреда с идиотскими отсылками?


iOracleDevтут понеслосьесли ты один в теме чего-то не понял, не надо устраивать истерические демарш и, просто попробуй понять о чем идёт речь.
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869498
mackz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как долго с нуля учиться програмить на oracle ?
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869591
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mackzа как долго с нуля учиться програмить на oracle ?ноль
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39869602
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderесли ты один в теме чего-то не понял, не надо устраивать истерические демарш и, просто попробуй понять о чем идёт речь.
Я не понял что ты думаешь что я не понял? Кто устраивает истерические демарши, -2- ?
...
Рейтинг: 0 / 0
как проще всего в Оракле писать if exists()
    #39870041
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Albatross,

Я пропустил на фоне кормёжки тролля, для чего используется конструкция-то?
...
Рейтинг: 0 / 0
20 сообщений из 45, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как проще всего в Оракле писать if exists()
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]