使用SQL Server替换函数替换字符串 - 字符串超过4000个字符 - 怎么办?

Mad*_*sDk 2 sql string replace sql-server-2005

我有一个表,我需要在列中替换一些值.

该数据库正在SQL Server 2005上运行.

问题是某些行包含超过4000个字符,这给REPLACE函数带来了一些麻烦,因为它要求我将第一个参数转换为数据类型NVARCHAR,因此任何超过4000的字符都将被截断.

除了编写处理此问题的应用程序之外,还有其他解决方法吗?

有问题的查询是:

SELECT 
   Replace(cast([Database].[dbo].[fruits].[Tekst] as NVARCHAR(MAX)), 'bananas', 'apples') 
FROM [Database].[dbo].[fruits]
Run Code Online (Sandbox Code Playgroud)

该列fruits是数据类型Text

任何输入赞赏.

Mar*_*ith 5

我怀疑你刚刚达到SSMS中单个值的限制.

令人讨厌的是,它不允许您将其设置为无限制,而我知道显示长文本的唯一方法是通过转换为XML,如下所示.

select
(select Replace(cast([Database].[dbo].[fruits].[Tekst] as NVARCHAR(MAX)),'bananas','apples')  AS [processing-instruction(x)] FOR XML PATH(''), TYPE)
FROM [Database].[dbo].[fruits]
Run Code Online (Sandbox Code Playgroud)