【问题标题】:How to do a find and replace special character in SQL Server 2008如何在 SQL Server 2008 中查找和替换特殊字符
【发布时间】:2014-07-31 07:45:59
【问题描述】:

我正在尝试在我的数据库中查找并替换从不同字符集输入的大量“特殊字符”。

我环顾四周,在 SQL Server 中找到了REPLACE 函数,并尝试了以下方法:

UPDATE mans_brands_packages
SET package_content = REPLACE(package_content, 'œ', '&')
WHERE package_content LIKE '%œ%'

但我收到这样的错误:

消息 8116,第 16 级,状态 1,第 1 行
参数数据类型文本对于替换函数的参数 1 无效。

是因为 SQL Server 没有将“œ”作为参数?谢谢。

【问题讨论】:

  • 从您的 update 语句中删除 WHERE 部分。
  • package_content为TEXT类型,对REPLACE函数无效。你可以试试stackoverflow.com/a/4341677/961695
  • @YuriyGalanter, package_content LIKE '%œ%' 无论如何都没有多大意义,因为REPLACE 将在找到该字符时替换它;别的什么都没有。

标签: sql sql-server


【解决方案1】:

您正在尝试 replacetext 字段 - replace 期望 (n)(var)char 数据类型作为第一个参数。

UPDATE mans_brands_packages
SET package_content = REPLACE(convert(nvarchar(max),package_content),'œ','&')
WHERE package_content LIKE '%œ%'

此外,text 数据类型已被弃用。您应该将其更改为 (n)varchar(max) 字段

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2010-12-10
    • 1970-01-01
    相关资源
    最近更新 更多