Подтвердить что ты не робот

Ошибка UPDATE: "Текст типа данных аргумента недействителен для аргумента 1 REPLACE"

Почему я получаю эту ошибку из моего запроса?

Msg 8116, уровень 16, состояние 1, строка 3
Текст типа данных аргумента недействителен для аргумента 1 функции replace.

Query:

UPDATE 
    tableName
SET
    fieldName = REPLACE (fieldName, '&lt;', '<')
WHERE
    id = 100
4b9b3361

Ответ 1

Попробуйте следующее:

UPDATE tableName
SET fieldName = REPLACE (CONVERT(VARCHAR(MAX), fieldName), '&lt;', '<')
WHERE id = 100

Ответ 2

это будет работать для вас

UPDATE yourTableName
SET 
fieldName = REPLACE (CONVERT(VARCHAR(MAX), fieldName), '&lt;', '<')
WHERE id = 100

Ответ 3

Если вы хотите сделать ту же операцию для текста размером более 8000 символов, вы можете использовать следующий код:

DECLARE @v VARCHAR(10) -- TEXT TO ADD
DECLARE @Vs VARHCAR(10) -- TEXT TO FIND
SET @v = 'String text to add'
SET @Vs = 'String text to find'


       UPDATE 
                yourTableName
        SET 
                textField = SUBSTRING(textField,1,DATALENGTH (textField)-LEN(@Vs)) + REPLACE( CAST(SUBSTRING(textField,DATALENGTH(textField)-LEN(@Vs)-1,DATALENGTH (textField)) AS VARCHAR(4)),@Vs,@v )
            WHERE 
                yourTableName.id = @iRifID -- Update for Table ID