Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
31.08.2018, 12:18
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
Второй час бьюсь с этой ошибкой, но просветления в чем проблема не приходит. Есть запрос вида: Код: sql 1. 2. 3. 4.
ObjectInfo может хранить строковое значение или null. По отдельности запросы VInformation и VLawQualify выполняются без ошибок, но вот в таком варианте я получаю ошибку преобразования в int. Откуда вообще берется преобразование непонятно. Возможно что происходит попытка вычислить текстовое значение '5/10-А', на котором собственно и вылетает ошибка, но применение cast, convert эту ошибку не убирают. Замена COALESCE на CASE порождает ту-же ошибку. Есть идеи? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 12:20
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
Страдалецъ, жените атрибуты разных типов данных, отсюда и ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 12:33
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
СтрадалецъВозможно что происходит попытка вычислить текстовое значение '5/10-А', на котором собственно и вылетает ошибка, но применение cast, convert эту ошибку не убирают. Замена COALESCE на CASE порождает ту-же ошибку. Есть идеи?Очевидно, вы неправильно применили cast, convert. Сначала расскажите алгоритм преобразований данных, которые вы хотите выполнить в данном запросе, простыми словами, себе, а потом уже легко напишется и правильный запрос на SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 12:34
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
Вот только где они эти разные типы? Источники данных для COALESCE по отдельности ошибок не дают. Оба источника возвращают либо строку, либо null и вот в этом видимо и засада, но ведь COALESCE и должен сделать выбор как для таких данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 12:35
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
СтрадалецъВот только где они эти разные типы? Источники данных для COALESCE по отдельности ошибок не дают. Оба источника возвращают либо строку, либо null и вот в этом видимо и засада, но ведь COALESCE и должен сделать выбор как для таких данных. просто скажите тип данных для обоих ObjectInfo ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 12:36
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
Страдалецъ, сохраните результат, например, в таблице и посмотрите ее структуру. sp_help 'схема.таблица' ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 12:37
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
СтрадалецъВот только где они эти разные типы? Источники данных для COALESCE по отдельности ошибок не дают. Оба источника возвращают либо строку, либо null и вот в этом видимо и засада, но ведь COALESCE и должен сделать выбор как для таких данных.Посмотрите все поля, участвующие в запросе. Очевидно, ошибка будет там, где поле типа INT как то взаимодействует с полем типа VARCHAR Может, это поле dbo.VInformation.ObjectID, dbo.Object.ObjectID, dbo.VLawQualify.ObjectID, dbo.VInformation.ObjectInfo, dbo.VLawQualify.ObjectInfo Вот для начала составьте список типов этих полей ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 12:39
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
TaPaKСтрадалецъВот только где они эти разные типы? Источники данных для COALESCE по отдельности ошибок не дают. Оба источника возвращают либо строку, либо null и вот в этом видимо и засада, но ведь COALESCE и должен сделать выбор как для таких данных. просто скажите тип данных для обоих ObjectInfoМожет, у него при джойне ошибка, может, какой то ID целочисленный, а какой то строка? ТС же не показал ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 12:40
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
alexeyvgTaPaKпропущено... просто скажите тип данных для обоих ObjectInfoМожет, у него при джойне ошибка, может, какой то ID целочисленный, а какой то строка? ТС же не показал ошибку. ну я расшифоровываю "Источники данных для COALESCE по отдельности ошибок не дают" как тот же запрос только COALESE другой, но всё имеет право на жизнь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 13:04
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
Ну вот текст ошибки. --------------------------- Microsoft SQL Server Management Studio --------------------------- SQL Execution Error. Executed SQL statement: SELECT dbo.Object.ObjectID, COALESCE (dbo.VLawQualify.ObjectInfo, dbo.VInformation.ObjectInfo) AS Expr1 FROM dbo.Object LEFT OUTER JOIN dbo.VInformation ON dbo.Object.ObjectID = dbo.VInformation.ObjectID LEFT OUTER JOIN dbo.VLawQualify ON dbo.Object.... Error Source: .Net SqlClient Data Provider Error Message: Ошибка преобразования значения varchar "№ 52/1-697" в тип данных int. Это значение содержится в VInformation.ObjectInfo и если выполнить запрос VInformation отдельно, никаких ошибок нет. Не возникает ошибки если написать так: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 13:18
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
Страдалецъ, типы будете в секрете держать? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 13:23
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
Страдалецъ, Помедитируйте над результатом запроса Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 13:24
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
Страдалецъ, Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 13:49
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
Страдалецъ, Error Message: Ошибка преобразования значения varchar "№ 52/1-697" в тип данных int . Какому числу соответствует "№ 52/1-697"? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 14:08
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
СтрадалецъНе возникает ошибки если написать так:Так сделайте конверт: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 14:12
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
alexeyvg, О каком конверте идет речь, если в первом же посте ТС написано: " Возможно что происходит попытка вычислить текстовое значение '5/10-А', на котором собственно и вылетает ошибка "? И сообщение об ошибке он уже привел :" Error Message: Ошибка преобразования значения varchar "№ 52/1-697" в тип данных int" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 14:13
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
invm, Помедитировал, как и ожидалось имеем varchar и null. Сделал запрос: Код: sql 1. 2. 3.
Получил ту-же ошибку. Код: sql 1. 2.
Получил ту-же ошибку. Сделал запрос по значениям возвращающимся из запроса: Код: sql 1. 2.
Получил ожидаемый '№ 52/1-697' Все это я уже проверил в разных вариантах. Понимания, как победить проблему не добавило. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 14:18
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
Страдалецъ, Вы все еще не понимаете, что делаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 14:23
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
Страдалецъ, да скажи ты типы полей уже, медитатор авторВы все еще не понимаете, что делаете. вы тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 14:29
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
TaPaK, Как мы уже поняли, разные и автоматически не конвертируются один в другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 14:32
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
Wlr-lTaPaK, Как мы уже поняли, разные и автоматически не конвертируются один в другой. вы же там что-то расчитываете, не отвлекайтесь тс. Ошибка это ака Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 14:33
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
Страдалецъinvm, Помедитировал, как и ожидалось имеем varchar и null. Сделал запрос: Код: sql 1. 2. 3.
Получил ту-же ошибку. У вас dbo.VInformation и/или dbo.VLawQualify это view, видимо. Вот они криво и написаны. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 14:38
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
msLex, " Вот они криво и написаны ." Не факт. Скорее всего криво используются. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 14:48
|
|||
---|---|---|---|
Ошибка преобразования varchar в int |
|||
#18+
Wlr-lНе факт. Скорее всего криво используются. Если select top 1 * from view падает с ошибкой, то проблема явно не в использовании ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.08.2018, 14:56
|
|||
---|---|---|---|
|
|||
Ошибка преобразования varchar в int |
|||
#18+
msLex, В самом первом ответе красиво сказано: " жените атрибуты разных типов данных ". Дело не в top, а в coalesce: Код: sql 1.
Т.е. имеем несовместимые типы данных и пытаемся всем миром привести их к одному. TaPaK уже смоделировал эту ситуацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&mobile=1&tid=1684490]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 273ms |
total: | 420ms |
0 / 0 |