|
|
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
Я последнее время использую nvl(max(col1), 0) в запросе select into. Это норм? Или нельзя так, и лучше через exception? Меня терзают смутные сомнения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 11:34:42 |
|
||
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
misha1973Я последнее время использую nvl(max(col1), 0) в запросе select into. Это норм? Или нельзя так, и лучше через exception? Меня терзают смутные сомнения... Можно, это распространенный прием, nvl(max(...), 0) from dual where exists (...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 11:36:54 |
|
||
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
misha1973, Некоторые полагают, что эффективнее использовать курсор и фетч, ссылаясь что "второй фетч" для too_many_rows потребляет ресурсы. Отсюда и вариант работы с no_data_found. Про no_data_found, стоит отметить, может быть не только эффективнее, но и корректнее, не доводить до необходимости проверки отдельным селектом. Если тебя волнует, нормальный ли ты, лучше обратиться к психиатру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 12:05:18 |
|
||
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
1) Много пафоса. 2) Где хоть слово я написал про проверку существования значения отдельным селектом? Понятно, что это ноу гуд. Вопрос был только в эффективности вычисления агрегата по сравнению с отловом исключения и присваивания значения по умолчанию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 12:29:28 |
|
||
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
misha1973Где хоть слово я написал про проверку существования значения отдельным селектомВ заголовке темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 14:50:06 |
|
||
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
misha1973, как вариант select coalesce ( (select col1 from ...), 0 ) into val from dual; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 12:24:54 |
|
||
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
misha1973, достаточно max(col1). Null - это уже data found ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 12:09:42 |
|
||
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
Стромпртстен, да ну? На каком уровне дата фаунд? Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 15:01:53 |
|
||
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
dmdmdm, Ты не старался :) Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 16:58:09 |
|
||
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
Стромпрстен, Внезапно. И какой смысл в этом count(*) = 1 для пустого запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 04:31:41 |
|
||
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
AnSi_Sr, Читаем что возвращают агрегирующие функции и просвещаемся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 05:27:52 |
|
||
|
Борьба с no data found
|
|||
|---|---|---|---|
|
#18+
внезапноЧитаем что возвращают агрегирующие функции и просвещаемся Спасибо, обязательно. Поскольку дискуссия заходит в тупик, резюмирую. В теме речь идет об использовании конструкции для проверки существования записи в таблице по идентификатору. Есть такие варианты решения вместо count(*): - выбрать по идентификатору с обработкой NDF; - открыть курсор и профетчить его один раз; - использовать конструкцию NVL(MAX(1), 0); Заявленный в процессе обсуждения тезис, что NULL - это какой-то DATA FOUND и достаточно простого MAX(1), а также последующая демонстрация использования противоречат постановке задачи, поскольку возвращают 1 вместо 0 для пустого запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 06:24:29 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=202&tid=1887510]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
84ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 415ms |

| 0 / 0 |
