|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
iOracleDevкит северных морей, Бронь с 9 до 18 тремя блоками, берем интервал минуту и получаем вместо трех записей 540, для переговорной комнаты и интервала 10 или 15 минут такое решение еще можно как то пропихнуть, в общем случае оно не пригодно. даже с минутным интервалом (который не нужен) вы выходите на условно существенные объемы только если вы сбербанк и у вас по всей стране целыми днями бронируют сто тыщ переговорок в каждом мухосранском допофисе. в любом другом случае... 1e5... 1e6 строк в день за то, что критичная бизнес-функциональность будет гарантирована СУБД, а не моими криворукими коллегами? легко. а аппелировать к "общему случаю" бессмысленно - его никогда не бывает. всегда решается конкретная задача, в конкретных условиях, и с конкретными ограничениями. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 02:07 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
iOracleDev-2-А как через if exists?Никак, это конструкция языка не реализованная в Oracle, делает код проще и читабельнее в тех случаях когда она требуется.Либо ты тупо отмораживаешься, либо просто туп. Вопрос ведь не в "проще и читабельнее", а в том, способен ли ты для приведенной тобой же задачи корректно использовать гипотетический if exists. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 06:49 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
-2-iOracleDevпропущено... Никак, это конструкция языка не реализованная в Oracle, делает код проще и читабельнее в тех случаях когда она требуется.Либо ты тупо отмораживаешься, либо просто туп. Вопрос ведь не в "проще и читабельнее", а в том, способен ли ты для приведенной тобой же задачи корректно использовать гипотетический if exists.если где-то в main таблице заблокировать комнату, то вполне ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 06:58 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
andreymxесли где-то в main таблице заблокировать комнату, то вполне Именно так, или воспользоваться пакетом dbms_lock, а у ребят похоже oracle головного мозга, накидали говнорешений и полезли в бутылку. -2-Либо ты тупо отмораживаешься, либо просто туп. Вопрос ведь не в "проще и читабельнее", а в том, способен ли ты для приведенной тобой же задачи корректно использовать гипотетический if exists. Открой древнюю как яйца мамонта книжку "Том Кайт. Oracle для профессионалов: архитектура, методики программирования и особенности версий 9i и 10g", прочитай первую главу, и после прочтения скажи мне пожалуйста, можно корректно заменить select count(*) into l_cnt из примера на гипотетический if exists? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 14:47 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
iOracleDev можно корректно заменить select count(*) into l_cnt из примера на гипотетический if exists? 21979065 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 15:04 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
iOracleDev, Ты уж трижды лажанулся, может пора остановиться? Предлагать повсеместную сериализацию доступа с лишним if exists, вместо обработки исключения при insert/merge - весьма глупо. Пытаться слиться, напирая на более редкие случаи чуть более сложной логики, да ещё и не разбираясь в теме и пытаться спроецировать собственное незнание на других - ещё более глупо. Смешно наблюдать, как ты пытаешься выдать пользовательские блокировки dmbs_lock как некое откровение... Погляди на историю -2- и andrey_anonymous, они это знали ещё задолго до твоего знакомства с ораклом ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 15:24 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
andrey_anonymous 21979065 Ты не понял, -2- имеет непонятные претензии к такой конструкции в принципе. Твой вариант с дополнительным этажом в запросе как то не очень, на мой взгляд этот вариант 21979064 лучше, кроме того if предполагает возможность создать секцию else, цикл такой секцией не обладает. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 15:30 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
xtenderiOracleDev, Ты уж трижды лажанулся, может пора остановиться? Предлагать повсеместную сериализацию доступа с лишним if exists, вместо обработки исключения при insert/merge - весьма глупо. Пытаться слиться, напирая на более редкие случаи чуть более сложной логики, да ещё и не разбираясь в теме и пытаться спроецировать собственное незнание на других - ещё более глупо. Смешно наблюдать, как ты пытаешься выдать пользовательские блокировки dmbs_lock как некое откровение... Погляди на историю -2- и andrey_anonymous, они это знали ещё задолго до твоего знакомства с ораклом Кайт дурак вы все умные, я так и понял, спасибо за науку. Да, я считаю архитектурно правильно сделать сериализацию и не плодить мусорные записи для костыльного обеспечения целостности, при этом обеспечивая ту же самую сериализацию только через одно место. При чем здесь вообще insert/merge, речь о чтении данных, а не о их записи, гипотетический if exists частный случай открытия курсора фетча одной строки и его закрытия, вы не используете в коде курсоры, у вас аллергия на fetch? Хочешь пример для if exists попроще, есть настройки с флагом отправлять письма или нет, если флаг установлен, то отправить письмо, если не установлен не отправлять, где тут insert/merge? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 15:48 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
Можно, нужно... Бритва оккама - PL/SQL нетранзакционный. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 16:09 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
iOracleDev -2- имеет непонятные претензии к такой конструкции в принципе. Твой вариант с дополнительным этажом в запросе как то не очень, на мой взгляд этот вариант 21979064 лучше 1. -2- имеет очень понятные претензии к данной конструкции. Он исходит из того, что внутри ветвления предполагается работа с данными (модификация), зависящая от существования строки. Именно в этом случае конструкция может провоцировать data inconsistency. Если осознаете сей прискорбный факт - не придется нажимать так много кнопок в попытках убедить окружающих в собственной альтернативной гениальности. 2. "как-то не очень" - попробуйте отшлифовать свой взгляд на оселке реальности. Примите в рассмотрение несколько аспектов: - подзапрос в exists может быть сложным - строки, отвечающие критерию, могут быть разрежены - на втором уровне оптимизации pl/sql курсорный цикл внутренне преобразуется в bulk collect. Проведите эксперименты, снимите трассировки, оцените в реальных ресурсах. Кроме того, в объективной реальности существуют такие вещи, как сопровождаемость кода. И с этой точки зрения exit в конце for-loop, кардинально меняющий смысл конструкции, хорошо просматривается только при ~пустом теле цикла. Напишите такой цикл с телом на полторы странички и устройте "коридорный тест" - попросите коллег "с листа" проинтерпретировать для Вас написанное - сможете оценить масштабы непонимания. Фокус же с select from dual - достаточно старый, узнаваемый паттерн. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 17:55 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
iOracleDevДа, я считаю архитектурно правильно сделать сериализацию ...и это пройдёт. Рано или поздно Вы познакомитесь с более масштабными системами, нежели работаете сейчас - и понимание границ применимости сериализации придёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 18:00 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
andrey_anonymous1. -2- имеет очень понятные претензии к данной конструкции. Он исходит из того, что внутри ветвления предполагается работа с данными (модификация), зависящая от существования строки. Именно в этом случае конструкция может провоцировать data inconsistency. Если осознаете сей прискорбный факт - не придется нажимать так много кнопок в попытках убедить окружающих в собственной альтернативной гениальности. Это относится к любому запросу в теле процедурного кода, данная конструкция лишь частный случай, почему то перевозбудивший местную аудиторию именно в таком ключе. andrey_anonymous2. "как-то не очень" - попробуйте отшлифовать свой взгляд на оселке реальности. Может быть, я обычно не использую циклы там где требуется прочитать одну строку. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 18:07 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
iOracleDev относится к любому запросу в теле процедурного кода Не стоит обобщать сверх необходимого. Сама дискуссия появилась как результат излишне общей формы исходного вопроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 18:11 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
iOracleDevя обычно не использую циклы там где требуется прочитать одну строку. Тогда используйте прямое управление курсором, ветвитесь по cursor%found. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 18:38 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
andrey_anonymousТогда используйте прямое управление курсором, ветвитесь по cursor%found. Обычно так и делаю. Я не автор топика, просто поинтересовался чем так не угодила простая гипотетическая конструкция, частный вариант существующих механизмов, и тут понеслось ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 18:44 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
iOracleDevпросто поинтересовалсяна полторы страницы слабосвязного бреда с идиотскими отсылками? iOracleDevтут понеслосьесли ты один в теме чего-то не понял, не надо устраивать истерические демарш и, просто попробуй понять о чем идёт речь. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 19:19 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
а как долго с нуля учиться програмить на oracle ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 20:06 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
mackzа как долго с нуля учиться програмить на oracle ?ноль ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 22:07 |
|
как проще всего в Оракле писать if exists()
|
|||
---|---|---|---|
#18+
xtenderесли ты один в теме чего-то не понял, не надо устраивать истерические демарш и, просто попробуй понять о чем идёт речь. Я не понял что ты думаешь что я не понял? Кто устраивает истерические демарши, -2- ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 22:27 |
|
|
start [/forum/topic.php?fid=52&startmsg=39868835&tid=1882026]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 160ms |
0 / 0 |