非常に大きいnvarchar(max)フィールドにはhtmlが含まれています。このhtml内にimgタグがあります。文字列またはバイナリデータが切り捨てられます - 大きな文字列
例:
<img style="float:right" src="data:image/png;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/7gAOQW....
置き換えるされているものが多いが、これよりも少し小さいですが、していないが、この列の長さは、1645151です。私たちがやろうとしている何
、列にSQLに置き換えている:@sourceは、NVARCHAR(MAX)に割り当てられている文字列を、上記のように画像のバイトです
declare @url varchar(50) = 'myimageurl';
UPDATE table SET field =
CAST(REPLACE(CAST(field as NVARCHAR(MAX)),@source,'@url') AS NVARCHAR(MAX))
変数の前に置き換えを実行します。 destはイメージバイトではなくイメージのURLです。
私はまだメッセージ文字列を取得するか、バイナリデータが切り捨てられます。
SQLでこれが可能な場合は誰でも知っていますか?
文字列の置換を行う代わりに、バイナリデータの代わりにフィールド全体の値をイメージURLに置き換えるという問題を考えてみましょう。私はそれがより清潔で読みやすいと思う。そしてより信頼できる。 –
"field"の長さが1645151の場合、外側の "CAST"はそれをnvarchar(1645151)にキャストする必要はありませんか? REPLACE関数は、すでにnvarchar(max)を返す必要があります。 – ADyson
@ADyson nvarcharの最大サイズは8000 –