我們有一個非常大的包含html的nvarchar(max)字段。在這個html內是一個img標籤。字符串或二進制數據將被截斷 - 大字符串
實施例:
<img style="float:right" src="data:image/png;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/7gAOQW....
此列的長度爲1645151,但什麼被替換比這少一點,但不是很多。
我們正在嘗試做的,是在SQL中替換列:
declare @url varchar(50) = 'myimageurl';
UPDATE table SET field =
CAST(REPLACE(CAST(field as NVARCHAR(MAX)),@source,'@url') AS NVARCHAR(MAX))
其中@source,是上面的圖像字節字符串,它之前被分配到一個nvarchar(最大)變量運行替換。 dest是圖像的url,而不是圖像字符串。
雖然我仍然得到消息字符串或二進制數據將被截斷。
有誰知道這是否可能在SQL中取代這樣大的字符串。
只是想到這個問題,我傾向於用圖像url替換整個字段的值來代替二進制數據,而不是嘗試進行字符串替換。我認爲這會更清晰,更易於閱讀。而且更可靠。 –
如果「field」的長度是1645151,外部「CAST」是否需要將其轉換爲nvarchar(1645151)? REPLACE函數應該已經返回nvarchar(max)。 – ADyson
@ADyson nvarchar的最大尺寸是8000 –