2012-02-23 4 views
0

Это код, который мне удалось исследовать. Вся таблица импортируется из SQL, а не NULL. При запуске я получаю сообщение об ошибке «Недопустимый параметр длины, переданный функции RIGHT». Кажется, это сообщение появляется только в том случае, если в поле есть пустые записи.Удаление котировок с начала и конца - для полей с пробелами

Как изменить этот скрипт только на выполнение, если поле не равно нулю?

UPDATE [Majestic].[dbo].Fields_custom 
    SET maxlength=left(right(cast(maxlength as nVarChar),LEN(cast(maxlength as nVarChar))-1),LEN(cast(maxlength as nVarChar))-2) 
    WHERE maxlength IS NOT NULL 

ответ

1

Просто добавьте условие, что ваше поле должно иметь кавычки в начале и конце:

... AND maxlength LIKE '"%"' 
+0

Спасибо MicSim, это работает как шарм !! – hermanvn

0

Если поле пустое, длина будет равна нулю, поэтому вы будете запрашивать крайние правые -1 символов, что является недопустимым.

+0

Спасибо Эд, я сделал см. его, но разве мое заявление не помогает? Он должен только обновлять IF maxlength <> blank? – hermanvn

0

- SQL

WHERE not (ISNULL(maxlength, '') = '') 

или оракул

WHERE not (nvl(maxlength, '') = '') 
+0

Сообщение об ошибке b0rg: 'IS_NULL' не является признанным встроенным именем функции. – hermanvn

+0

Поле буквально выглядит как «9» или пустое – hermanvn

+0

ISNULL() конечно. Исправлено – b0rg

Смежные вопросы