I have a table, where I need to replace some values in a column.
The database is running on SQL Server 2005.
The problem is that some of the rows contain more than 4000 characters, which is giving the REPLACE function some trouble, since it demands that I cast the first parameter to the datatype NVARCHAR, and therefore any characters exceeding 4000, is being truncated.
Is there any workaround for this, other than writing an application that handles this issue?
The query in question is:
SELECT
Replace(cast([Database].[dbo].[fruits].[Tekst] as NVARCHAR(MAX)), 'bananas', 'apples')
FROM [Database].[dbo].[fruits]
The column fruits is of datatype Text
Any input appreciated.
nvarchar(max)cause truncation at 4000 chars? What does this return for you?SELECT LEN(REPLACE(REPLICATE(CAST('A' AS NVARCHAR(MAX)),16000),'A','B'))Are you sure your issue isn't simply that it is getting truncated in the SSMS results?nvarcharis 4000: msdn.microsoft.com/en-us/library/ms186939.aspx. The query you gave me returns the value 16000, but how can I make it iterate through a column to test for values? Replacing 'A' inside the cast with the column didn't solve the issue..4000is the maximum explicit value. Usingmaxallows it to hold up to 2GB of data (a billion double byte characters)War and Peace- enough for you!?!??!