Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передача переменной в inline UDF с CTE вызывает ошибку
|
|||
|---|---|---|---|
|
#18+
sql 12.0.5000.0 (X64) + 12.0.5557.0 (X64) Кажется, что-то подобное уже исправляли в 2012. Наткнулся случайно, если бы данные были чуть другими, то ошибку не заметил бы и она всплыла бы на боевом сервере. Чего нужно избегать в таких случаях? Излишние проверки добавлены с целью обойти ошибку, но они не помогли. Такое впечатление, что оптимизатор развернул запрос настолько, что текстовые функции стали выполняться раньше условий. Ошибка возникает и при передаче переменной и при передаче поля. С константой ошибки нет, видимо, из-за того, что план другой получается. Как лучше парсить email меня не интересует. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 12:31 |
|
||
|
Передача переменной в inline UDF с CTE вызывает ошибку
|
|||
|---|---|---|---|
|
#18+
tunknown, используй case ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 12:42 |
|
||
|
Передача переменной в inline UDF с CTE вызывает ошибку
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 12:47 |
|
||
|
Передача переменной в inline UDF с CTE вызывает ошибку
|
|||
|---|---|---|---|
|
#18+
busertunknown, используй caseНедосмотрел. Спасибо, case сработал в моём простом случае. Однако, вопрос остаётся. Как избегать этого, если нужно CTE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 12:52 |
|
||
|
Передача переменной в inline UDF с CTE вызывает ошибку
|
|||
|---|---|---|---|
|
#18+
tunknownС константой ошибки нет, видимо, из-за того, что план другой получается. Да, с константой сервер пропускает некоторые из union all Вам нужно поправить ошибку во втором из них: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 12:57 |
|
||
|
Передача переменной в inline UDF с CTE вызывает ошибку
|
|||
|---|---|---|---|
|
#18+
invm, Так тоже работает. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 12:59 |
|
||
|
Передача переменной в inline UDF с CTE вызывает ошибку
|
|||
|---|---|---|---|
|
#18+
tunknownОднако, вопрос остаётся. Как избегать этого, если нужно CTE?Хм, при чём тут CTE??? У вас просто ошибка в запросе (достаточно типичная). Вы думаете, что выражение в SELECT не выполняется для тех строк, которые не попадают под условие. А оно может выполняться для любых строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 13:00 |
|
||
|
Передача переменной в inline UDF с CTE вызывает ошибку
|
|||
|---|---|---|---|
|
#18+
alexeyvgВы думаете, что выражение в SELECT не выполняется для тех строк, которые не попадают под условие. А оно может выполняться для любых строк.Да, моя ошибка. Оптимизатор слишком умён стал, о чём и задокументировано. BOL Select Logical Processing Order of the SELECT statement Note that the actual physical execution of the statement is determined by the query processor and the order may vary from this list. FROM ON JOIN WHERE GROUP BY WITH CUBE or WITH ROLLUP HAVING SELECT DISTINCT ORDER BY TOP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2018, 13:17 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39694253&tid=1689199]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 333ms |

| 0 / 0 |
