Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
Подскажите, куда можно копать в такой ситуации. Есть табличная функция, которая иногда стала выдавать не то, что должна: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Делаем запрос Код: sql 1. Получаем результат, но вместо значений в некоторых строках почему-то нули. Начали разбираться, убили много времени. Определили, что на ошибку влияет входной параметр @D2 smalldatetime, который как-то не так попадает в функцию Делаем такой бессмысленный финт: параметр @D2 переименовываем на @D2x, декларируем @D2 в теле функции, делаем SET @D2 = @D2x Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Вот теперь все работает правильно! Добавили в функцию бредовое ненужное действие и получили правильный результат. Как такое может быть? Таких функций в проекте очень много. И где оно опять выстрелит... Подскажите, что делать и в чем может быть ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 10:51 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
Не совсем по теме, но если в функции один SELECT, то почему не сделать инлайн-функцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 11:02 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
В проекте много таких функций, они иногда меняются. Где-то было много Select-ов, стал один, где-то наоборот. В критичных местах переделываем. Ну да, наверное это не по теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 11:35 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
m71, Каст между varchar'ами и различными date/datetime/smalldatetime... имеет место быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 11:47 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
действительно нет ли где не явного преоброзования (и не обязательно из varchar) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 11:52 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. А такой вызов как-то влияет на результат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 12:08 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
дайте уже полный текст этой функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 12:09 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
Кусочек Код: sql 1. А такой вызов как-то влияет на результат? Не влияет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 13:16 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 13:18 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
ну и код функции dbo.fnRKCAccrRegM тоже давайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 13:21 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
и главное, где то, что "в некоторых строках почему-то нули" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 13:26 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
Результат правильный: 2017-12-01 2461224479.3000090 1 2.000000 NULL NULL NULL NULL NULL 2.000000 2017-12-01 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000 2017-12-02 2461224479.3000090 1 2.000000 NULL NULL NULL NULL NULL 2.000000 2017-12-02 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000 2017-12-03 2461224479.3000090 1 2.000000 NULL NULL NULL NULL NULL 2.000000 2017-12-03 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000 2017-12-04 2461224479.3000090 1 2.000000 NULL NULL NULL NULL NULL 2.000000 2017-12-04 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000 Результат, который выдает функция: 2017-12-01 2461224479.3000090 1 0.000000 NULL NULL NULL NULL NULL 0.000000 2017-12-01 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000 2017-12-02 2461224479.3000090 1 0.000000 NULL NULL NULL NULL NULL 0.000000 2017-12-02 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000 2017-12-03 2461224479.3000090 1 0.000000 NULL NULL NULL NULL NULL 0.000000 2017-12-03 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000 2017-12-04 2461224479.3000090 1 0.000000 NULL NULL NULL NULL NULL 0.000000 2017-12-04 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000 Кол-во строк совпадает, но через строчку данные обнуляются Вообще, я самого главного не могу понять. Чем @D2 smalldatetime в заголовке функции отличается от того же самого в ее теле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 13:33 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
хм-хм-хмну и код функции dbo.fnRKCAccrRegM тоже давайте Код: 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 13:41 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
а если сделать вот так: sp_recompile 'dbo.fnRKCAccrEvidInd', ошибка будет повторяться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 13:56 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
Прошу прощения за оффтоп, но это жуткий говнокод... по три раза обращаемся к одним и тем же таблицам и делаем одни и те же соединения, затем все это конкатенируем и выводим результат в виде табличной функции.... почему бы одинаковые куски кода не оформить в виде представлений/табличных переменных/inline-функций? Зачем читать одни и те же данные многократно? И зачем на каждой таблице проверки дат? неужели нельзя определить минимальный отрезок и один раз его проверить, да еще через сомнительные преобразования ISNULL(...,'20400101').. почему бы не писать IS NULL OR ... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 16:30 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
m71Кусочек Код: sql 1. А такой вызов как-то влияет на результат? Не влияет Код: sql 1. Покажите результат запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 16:37 |
|
||
|
Странная ошибка в табличной функции
|
|||
|---|---|---|---|
|
#18+
нус... с таким кодом только "выворачивать фарш назад", т.е. писать тесткейсы, которые отловят параметры, при которых появляются "не правильные данные", а потом "разворачивать назад" всё функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 16:38 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39611178&tid=1690152]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
2ms |
| others: | 262ms |
| total: | 454ms |

| 0 / 0 |
