|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
msLexWlr-lНе факт. Скорее всего криво используются. Если select top 1 * from view падает с ошибкой, то проблема явно не в использовании судя по всему так и есть, проблама в dbo.VLawQualify по полю ObjectInfo. Соединять будет при выборе будет в ошибке. Смотреть в типы внутри представления ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:56 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Wlr-l, Астановитесь(с) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 14:57 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Думаю, что самого первого и красивого ответа " жените атрибуты разных типов данных " было достаточно. Поэтому Астанавливаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 15:04 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Wlr-lВ самом первом ответе красиво сказано: " жените атрибуты разных типов данных ". Дело не в top, а в coalesce: Дела в кривой вью, ее и нужно править ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 16:40 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
TaPaK - дались вам эти типы полей. Между таблицей где объявлены типы полей и запросом в теме стоит вьюшка, которая объединять в себе может любые типы в одну строку InfoObject. Ошибки преобразования и исключения обрабатываются в этой вьюшке и там все замечательно. Суть всего этого в получении по ObjectID краткого содержимого. Вот так выглядит вполне рабочий запрос, который ни на что не ругается и делает то что и задумано: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Как видите, здесь в coalesce спокойно уживаются и рак и жаба и напильник, в том числе и злополучный dbo.VInformation.ObjectInfo. Но стоит добавить в coalesce dbo.VLawQualify.ObjectInfo и все запрос начинает чудить. Причем данных в dbo.VLawQualify нет вообще никаких, как и в dbo.VCrimQualify, но с dbo.VCrimQualify прекрасно работает, а с VLawQualify не хочет дружить никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 20:12 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Ну а вот так выглядит VCrimQualify Код: sql 1. 2. 3.
и VLawQualify Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 20:17 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
СтрадалецъTaPaK - дались вам эти типы полей.СтрадалецъНо стоит добавить в coalesce dbo.VLawQualify.ObjectInfo и все запрос начинает чудить. 1. Смотрите какой тип у столбца dbo.VLawQualify.ObjectInfo и у всех остальных, перечисленных в coalesce. Записываете их на бумажку чтобы не забыть. 2. Внимательно читаете - https://docs.microsoft.com/ru-ru/sql/t-sql/language-elements/coalesce-transact-sql?view=sql-server-2017, особенно про тип результата. 3. Не менее внимательно читаете - https://docs.microsoft.com/ru-ru/sql/t-sql/data-types/data-type-precedence-transact-sql?view=sql-server-2017, чтобы найти приоритеты типов столбцов из п.1 4. На основании знаний полученных из п.п. 2 и 3 определяете тип выражения с coalesce с включенным столбцом dbo.VLawQualify.ObjectInfo и без оного. Когда осознаете откуда взялось преобразование varchar -> int, обратите внимание на 21660186 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 20:27 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Пока писал ответ нашел я в чем был косяк, но оказался он совсем не в той вьюшке, на которую мне ругался SQL. Теперь все работает без проблем. Тему можно наверное закрыть - всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 20:28 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
СтрадалецъTaPaK - дались вам эти типы полей. Между таблицей где объявлены типы полей и запросом в теме стоит вьюшка, которая объединять в себе может любые типы в одну строку InfoObject. Ошибки преобразования и исключения обрабатываются в этой вьюшке и там все замечательно.Эээ, "дались вам эти типы полей" - вы серьёзно думаете, что сервер вас обманывает? :-) Ошибка очевидна, сервер вам её пишет русским по белому. Зная типы полей, и посмотрев на запросы, можно понять, какая ошибка в вашем коде приводит к этой ошибке, и поправить её. СтрадалецъКак видите, здесь в coalesce спокойно уживаются и рак и жаба и напильник, в том числе и злополучный dbo.VInformation.ObjectInfo. Но стоит добавить в coalesce dbo.VLawQualify.ObjectInfo и все запрос начинает чудить. Причем данных в dbo.VLawQualify нет вообще никаких, как и в dbo.VCrimQualify, но с dbo.VCrimQualify прекрасно работает, а с VLawQualify не хочет дружить никак.Даже один и тот же запрос, на одних и тех же данных, может то выдавать ошибку, то работать правильно, в зависимости от построенного плана запроса. А у вас даже запрос меняется. Разумеется, один из ваших запросов может отработать правильно, а другой с ошибкой, не понимаю, почему вас это так удивляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 20:30 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
Тут несколько другая беда оказалась. Здесь SQL мне выдал во первых неверную ссылку на ошибку, а во вторых ошибка появлялась только при использовании результата запроса в coalesce(), но вне его работало без проблем, что мягко говоря несколько усложнило поиск ошибки. Если помните, был такой эпизод Ералаша, когда Панкратов Черный в моторе не заводившейся машины ковырялся, а вокруг бегал малыш и говорил, что он знает что сломалось. Ситуация очень схожая. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 20:40 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
СтрадалецъТут несколько другая беда оказалась. Здесь SQL мне выдал во первых неверную ссылку на ошибку, а во вторых ошибка появлялась только при использовании результата запроса в coalesce(), но вне его работало без проблем, что мягко говоря несколько усложнило поиск ошибки.Не "другая", а та, про которую вам сказали вначале обсуждения: 21660056 Во вторых, я вам писал, что ошибка может то возникать, то не возникать, совершенно без изменения запроса, и на одних и тех же данных. И место тоже очевидно до банальности - либо у 2х вьюх разные типа полей, которые используются в coalesce, либо ошибка в других вьюхах, и про это тоже писали. СтрадалецъЕсли помните, был такой эпизод Ералаша, когда Панкратов Черный в моторе не заводившейся машины ковырялся, а вокруг бегал малыш и говорил, что он знает что сломалось. Ситуация очень схожая. :)Вам говорили про конкретные методы поиска: смотреть типы полей, совместно участвующие в любых операциях. что бы смотреть меньше, идти вверх по цепочке от ObjectInfo Понятно, что кроме "метода", ничего сказать было нельзя, потому что мы бегали вокруг машины неизвестной марки, которая стояла в запертом гараже. Вы же отказывались дать информацию, говоря "у меня там всё правильно" :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 21:05 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
как побороть такую проблему insert into nsi_train (n_train ) values ('055и') получаю ошибку как в текущемй теме, ms sql 2010 у нас. если напишу запрос ,без буквы прокатит,а если полный варчар,то ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2021, 14:38 |
|
Ошибка преобразования varchar в int
|
|||
---|---|---|---|
#18+
разобрались,программист ,который уничтожал программу перед увольнением наворотил constraintov там где этого не нужно,отключили их и работает ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2021, 15:15 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1684490]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 173ms |
0 / 0 |