Хобрук: Ваш путь к мастерству в программировании

SQL REPLACE выдает ошибку: «Строка или двоичные данные будут усечены».

Я пытаюсь заменить только часть строки в базе данных нашей компании. Столбец, в котором я пытаюсь обновить, — MERGECODES (varchar(20),null). Типичным значением этого столбца будет что-то вроде 'M, GPE, T'.

Я хотел бы заменить каждый экземпляр T на KD, но получаю сообщение об ошибке ниже. Это позволит мне изменить что-либо с таким же или меньшим количеством символов, например, это позволит мне заменить T на K, но не на KD. Любая помощь будет принята с благодарностью. Спасибо, парни!

Код:

UPDATE GoldMine.dbo.CONTACT1 
SET MERGECODES = REPLACE(MERGECODES, 'T', 'KD')

ОШИБКА:

Сообщение 8152, уровень 16, состояние 14, строка 1
Строковые или двоичные данные будут усечены. Оператор был прекращен.


  • Если у вас действительно есть M, GPE, T в столбце varchar(20), и вы выполняете свой REPLACE - он просто работает без проблем. Я думаю, что вы, вероятно, обновляете слишком много строк и, по крайней мере, одна из строк, с которыми сталкивается оператор UPDATE, содержит слишком много символов в этом столбце для работы REPLACE. Попробуйте использовать предложение WHERE id = 42 или что-то подобное, чтобы обновить только одну строку, которая, как вы знаете, в порядке. 14.08.2012
  • Спасибо, marc_s, это имеет смысл. 14.08.2012
  • Почему кто-то проголосовал против этого вопроса? Пожалуйста, дайте мне знать, если я сделал что-то не так. 14.08.2012

Ответы:


1

Вам нужно увеличить размер типа данных.

В настоящее время у вас есть varchar(20).

Если длина данных составляет 20 символов, и вы заменяете 1 символ на 2, то это будет 21 символ, что приведет к усечение.

Попробуйте увеличить тип данных, например, до varchar(50), и это должно решить вашу проблему.

14.08.2012
Новые материалы

numberToString.js (8kyu 16)
Алгоритм кодовых войн Проблема Нам нужна функция, которая может преобразовать число в строку. 숫자를 문자열로 변환하는 함수를 작성해라. Решение 01 function numberToString(n) { return n.toString(); }..

Лучшие практики для быстрого изучения языка программирования
Изучение языка программирования может быть сложной задачей, но при правильном подходе определенно возможно быстро выучить язык программирования. Хорошее понимание языка программирования может..

Использование данных из Adobe Analytics в предложениях Adobe Target
Я уверен, что все видели эти всплывающие окна в интернет-магазинах, которые говорят что-то вроде « 15 человек просматривают этот товар прямо сейчас! » или « 105 человек из Мичигана купили это..

Машинное обучение и его набор данных в CreateML
Когда я впервые начал учиться в Apple Developer Academy, у меня был момент неуверенности в моем интересе к машинному обучению. Нужно ли мне сменить карьеру моей мечты с специалиста по данным на..

Обучение требует воли
Недавно я прочитал отличную статью Шейна Легга и Джоэла Венесса из DeepMind. http://arxiv.org/pdf/1109.5951v2.pdf В статье «универсальный интеллект» агента π определяется как: Поэтому..

Безопасность по дизайну делает всех счастливыми
Заложенная безопасность делает всех счастливыми Если вы никогда не смотрели Louis C.K. рассказать о том, как Все удивительно, и никто не счастлив ; побаловать себя. Сделайте это прямо..

Перехватчики React: состояние контекста и эффекты
React Hooks: контекст, состояние и эффекты Пример из практики Более чем один веб-сайт, над которым я работал, страдает от проблемы, типичной для сайтов, которые позволяют входить в систему...