Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как найти значение, на котором возникает ошибка преобразования типа, или его пропустить? / 9 сообщений из 9, страница 1 из 1
29.10.2019, 10:31
    #39882590
Как найти значение, на котором возникает ошибка преобразования типа, или его пропустить?
Здравствуйте!

При исполнении SQL запроса, если добавить в его секцию WHERE строку
Код: sql
1.
CONVERT(Decimal, u.Мощность) <> c.N_Cap2


возвращается ошибка авторОшибка при преобразовании типа данных varchar к numeric
Как узнать, на какой строке спотыкается преобразование либо отсеять эти строки?
В секции WHERE есть еще такие фильтры:
Код: sql
1.
2.
u.Мощность IS NOT NULL AND u.Мощность <> '' AND u.Мощность <> '-' 
AND u.Мощность LIKE '[0123456789]%'


, но они не отлавливают некорректное значение
...
Рейтинг: 0 / 0
29.10.2019, 10:33
    #39882594
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти значение, на котором возникает ошибка преобразования типа, или его пропустить?
Борис Гаркун,

TRY_CAST/TRY_CONVERT
...
Рейтинг: 0 / 0
29.10.2019, 11:04
    #39882612
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти значение, на котором возникает ошибка преобразования типа, или его пропустить?
Борис ГаркунВ секции WHERE есть еще такие фильтры:
Код: sql
1.
2.
u.Мощность IS NOT NULL AND u.Мощность <> '' AND u.Мощность <> '-' 
AND u.Мощность LIKE '[0123456789]%'

Достаточно оставить только LIKE.
Остальное в этом случае будет лишним.
Потому что если первый символ обязательно цифра,
то автоматически эта строка не пуста, первый символ не минус и она не NULL.
...
Рейтинг: 0 / 0
29.10.2019, 12:40
    #39882663
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти значение, на котором возникает ошибка преобразования типа, или его пропустить?
Борис Гаркун,

NOT LIKE '%[^0-9]%'

но это никак не поможет, если фильтр convert будет применён раньше фильтра like. Лучше использовать try_cast/try_convert.
...
Рейтинг: 0 / 0
29.10.2019, 13:18
    #39882676
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти значение, на котором возникает ошибка преобразования типа, или его пропустить?
Если сиквел 2016 или новее, то: TRY_CONVERT() .
...
Рейтинг: 0 / 0
29.10.2019, 13:23
    #39882679
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти значение, на котором возникает ошибка преобразования типа, или его пропустить?
fkthatЕсли сиквел 2016 или новее, то: TRY_CONVERT() .
2012 вроде
...
Рейтинг: 0 / 0
29.10.2019, 14:08
    #39882698
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти значение, на котором возникает ошибка преобразования типа, или его пропустить?
TaPaKfkthatЕсли сиквел 2016 или новее, то: TRY_CONVERT() .
2012 вроде ошибка при конвертации
...
Рейтинг: 0 / 0
29.10.2019, 14:51
    #39882721
Как найти значение, на котором возникает ошибка преобразования типа, или его пропустить?
TaPaK, спасибо!
...
Рейтинг: 0 / 0
29.10.2019, 14:54
    #39882723
Как найти значение, на котором возникает ошибка преобразования типа, или его пропустить?
и всем спасибо :)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как найти значение, на котором возникает ошибка преобразования типа, или его пропустить? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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