Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / непонятный глюк с "String or binary data would be truncated" / 16 сообщений из 16, страница 1 из 1
27.04.2018, 16:48
    #39637612
Just_Serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
Коллеги, доброго дня!

Столкнулся с непонятным глюком.
Пытаюсь вставить в некое поле таблицы наименование другой таблицы:

Код: sql
1.
2.
3.
insert into <таблица>
	select sysobjects.name
                 ...



В результате возникает ошибка "String or binary data would be truncated."
Но весь прикол в том, что длина имени таблицы (строки, которую вставляю) - всего 20 символов, а длина поля таблицы, куда пытаюсь вставить - 35 символов.

Сделал, вот так и "прокатило":
Код: sql
1.
2.
3.
insert into <таблица>
	select LEFT(sysobjects.name, 35)
                 ...



Т.е., получается обрезал значение длиной 20 символов до 35 символов ))))))
select LEN(sysobjects.name) возвращает 20.

Как вообще такое может быть?
Может, кто-то сталкивался с подобным?
...
Рейтинг: 0 / 0
27.04.2018, 16:52
    #39637614
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
Just_Serg,

а пробелы? Чудес не бывает.
...
Рейтинг: 0 / 0
27.04.2018, 16:54
    #39637618
Just_Serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
Владислав КолосовJust_Serg,

а пробелы? Чудес не бывает.

Вот я про тоже, что не бывает чудес. Может, кто с таким сталкивался... Кстати, на другом сервере такой глюк не наблюдается - все отработало корректно.
...
Рейтинг: 0 / 0
27.04.2018, 16:59
    #39637624
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
Just_Serg,

len(вставляемое значение+'a')?
...
Рейтинг: 0 / 0
27.04.2018, 17:04
    #39637629
Just_Serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
Владислав КолосовJust_Serg,

len(вставляемое значение+'a')?

21
...
Рейтинг: 0 / 0
27.04.2018, 17:10
    #39637634
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
А на таблице, поди, триггер?
...
Рейтинг: 0 / 0
27.04.2018, 17:11
    #39637638
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
<таблица>.<field> покажите реально какой тип данных у вас, случаем не varchar(35) ?
...
Рейтинг: 0 / 0
27.04.2018, 17:17
    #39637645
Just_Serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
Konst_One<таблица>.<field> покажите реально какой тип данных у вас, случаем не varchar(35) ?

да, именно varchar(35)
...
Рейтинг: 0 / 0
27.04.2018, 17:19
    #39637647
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
а sysobjects.name тип sysname
...
Рейтинг: 0 / 0
27.04.2018, 17:20
    #39637648
Just_Serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
Гавриленко Сергей АлексеевичА на таблице, поди, триггер?

Нет, триггера нет
...
Рейтинг: 0 / 0
27.04.2018, 17:22
    #39637650
Just_Serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
Konst_Oneа sysobjects.name тип sysname

Т.е., нужно перед вставкой привести к типу varchar?
Странно, что все это работало уже десяток лет и вдруг сломалось.
...
Рейтинг: 0 / 0
27.04.2018, 17:27
    #39637655
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
переносили базу на другой сервер с другим collation?
...
Рейтинг: 0 / 0
27.04.2018, 17:32
    #39637657
Just_Serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
Konst_Oneпереносили базу на другой сервер с другим collation?

давно никаких телодвижений с базами не было.

Код: sql
1.
... CAST(sysobjects.name as varchar) ...


помогло

т.е. получается, что проверке перед вставкой SQL Server считает что LEN(sysobjects.name) != LEN(CAST(sysobjects.name as varchar))
...
Рейтинг: 0 / 0
27.04.2018, 17:35
    #39637659
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
потому что sysname = nvarchar(128) и у вас есть объекты с именами в юникоде, для обычных английских наименований будет всё равно
...
Рейтинг: 0 / 0
27.04.2018, 17:39
    #39637664
Just_Serg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
Konst_Oneпотому что sysname = nvarchar(128) и у вас есть объекты с именами в юникоде, для обычных английских наименований будет всё равно

Спасибо большое!
...
Рейтинг: 0 / 0
27.04.2018, 18:14
    #39637680
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятный глюк с "String or binary data would be truncated"
Konst_Oneпотому что sysname = nvarchar(128) и у вас есть объекты с именами в юникоде, для обычных английских наименований будет всё равноНе смущает, что https://docs.microsoft.com/en-us/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql?view=sql-server-2017 Character data types that are either fixed-length, nchar, or variable-length, nvarchar, Unicode data and use the UNICODE UCS-2 character set. https://docs.microsoft.com/en-us/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql?view=sql-server-2017 nvarchar [ ( n | max ) ]
Variable-length Unicode string data. n defines the string length ?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / непонятный глюк с "String or binary data would be truncated" / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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