|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Второй час бьюсь с этой ошибкой, но просветления в чем проблема не приходит. Есть запрос вида: Код: sql 1. 2. 3. 4.
ObjectInfo может хранить строковое значение или null. По отдельности запросы VInformation и VLawQualify выполняются без ошибок, но вот в таком варианте я получаю ошибку преобразования в int. Откуда вообще берется преобразование непонятно. Возможно что происходит попытка вычислить текстовое значение '5/10-А', на котором собственно и вылетает ошибка, но применение cast, convert эту ошибку не убирают. Замена COALESCE на CASE порождает ту-же ошибку. Есть идеи? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 12:18 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Страдалецъ, жените атрибуты разных типов данных, отсюда и ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 12:20 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
СтрадалецъВозможно что происходит попытка вычислить текстовое значение '5/10-А', на котором собственно и вылетает ошибка, но применение cast, convert эту ошибку не убирают. Замена COALESCE на CASE порождает ту-же ошибку. Есть идеи?Очевидно, вы неправильно применили cast, convert. Сначала расскажите алгоритм преобразований данных, которые вы хотите выполнить в данном запросе, простыми словами, себе, а потом уже легко напишется и правильный запрос на SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 12:33 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Вот только где они эти разные типы? Источники данных для COALESCE по отдельности ошибок не дают. Оба источника возвращают либо строку, либо null и вот в этом видимо и засада, но ведь COALESCE и должен сделать выбор как для таких данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 12:34 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
СтрадалецъВот только где они эти разные типы? Источники данных для COALESCE по отдельности ошибок не дают. Оба источника возвращают либо строку, либо null и вот в этом видимо и засада, но ведь COALESCE и должен сделать выбор как для таких данных. просто скажите тип данных для обоих ObjectInfo ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 12:35 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Страдалецъ, сохраните результат, например, в таблице и посмотрите ее структуру. sp_help 'схема.таблица' ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 12:36 |
|
Ошибка преобразования 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:37 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
TaPaKСтрадалецъВот только где они эти разные типы? Источники данных для COALESCE по отдельности ошибок не дают. Оба источника возвращают либо строку, либо null и вот в этом видимо и засада, но ведь COALESCE и должен сделать выбор как для таких данных. просто скажите тип данных для обоих ObjectInfoМожет, у него при джойне ошибка, может, какой то ID целочисленный, а какой то строка? ТС же не показал ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 12:39 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
alexeyvgTaPaKпропущено... просто скажите тип данных для обоих ObjectInfoМожет, у него при джойне ошибка, может, какой то ID целочисленный, а какой то строка? ТС же не показал ошибку. ну я расшифоровываю "Источники данных для COALESCE по отдельности ошибок не дают" как тот же запрос только COALESE другой, но всё имеет право на жизнь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 12:40 |
|
Ошибка преобразования 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:04 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Страдалецъ, типы будете в секрете держать? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 13:18 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Страдалецъ, Помедитируйте над результатом запроса Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 13:23 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Страдалецъ, Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 13:24 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Страдалецъ, Error Message: Ошибка преобразования значения varchar "№ 52/1-697" в тип данных int . Какому числу соответствует "№ 52/1-697"? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 13:49 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
СтрадалецъНе возникает ошибки если написать так:Так сделайте конверт: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:08 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
alexeyvg, О каком конверте идет речь, если в первом же посте ТС написано: " Возможно что происходит попытка вычислить текстовое значение '5/10-А', на котором собственно и вылетает ошибка "? И сообщение об ошибке он уже привел :" Error Message: Ошибка преобразования значения varchar "№ 52/1-697" в тип данных int" ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:12 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
invm, Помедитировал, как и ожидалось имеем varchar и null. Сделал запрос: Код: sql 1. 2. 3.
Получил ту-же ошибку. Код: sql 1. 2.
Получил ту-же ошибку. Сделал запрос по значениям возвращающимся из запроса: Код: sql 1. 2.
Получил ожидаемый '№ 52/1-697' Все это я уже проверил в разных вариантах. Понимания, как победить проблему не добавило. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:13 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Страдалецъ, Вы все еще не понимаете, что делаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:18 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Страдалецъ, да скажи ты типы полей уже, медитатор авторВы все еще не понимаете, что делаете. вы тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:23 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
TaPaK, Как мы уже поняли, разные и автоматически не конвертируются один в другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:29 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Wlr-lTaPaK, Как мы уже поняли, разные и автоматически не конвертируются один в другой. вы же там что-то расчитываете, не отвлекайтесь тс. Ошибка это ака Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:32 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Страдалецъinvm, Помедитировал, как и ожидалось имеем varchar и null. Сделал запрос: Код: sql 1. 2. 3.
Получил ту-же ошибку. У вас dbo.VInformation и/или dbo.VLawQualify это view, видимо. Вот они криво и написаны. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:33 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
msLex, " Вот они криво и написаны ." Не факт. Скорее всего криво используются. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:38 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Wlr-lНе факт. Скорее всего криво используются. Если select top 1 * from view падает с ошибкой, то проблема явно не в использовании ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:48 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
msLex, В самом первом ответе красиво сказано: " жените атрибуты разных типов данных ". Дело не в top, а в coalesce: Код: sql 1.
Т.е. имеем несовместимые типы данных и пытаемся всем миром привести их к одному. TaPaK уже смоделировал эту ситуацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:56 |
|
|
start [/forum/topic.php?fid=46&msg=39696253&tid=1684490]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 156ms |
0 / 0 |