人間が読める形式で列の値をvarbinary(max)
からvarchar
に変換する方法は?
「varbinary
をvarchar
に変換する」とは、意味が異なる場合があります。
VarbinaryがSQL Serverの文字列のバイナリ表現である場合(たとえば、varbinary
に直接キャストするか、DecryptByPassPhrase
またはDECOMPRESS
関数からキャストすることによって返される)、単にCAST
それ
declare @b varbinary(max)
set @b = 0x5468697320697320612074657374
select cast(@b as varchar(max)) /*Returns "This is a test"*/
これは、0
のスタイルパラメータでCONVERT
を使用することと同等です。
CONVERT(varchar(max), @b, 0)
他の回答に記載されているように、さまざまな要件に対してCONVERT
で他のスタイルパラメーターを使用できます。
実際、最良の答えは
SELECT CONVERT(VARCHAR(1000), varbinary_value, 1);
「2
」を使用すると、varbinary
の先頭で「0x
」が切り捨てられます。
これを試して
SELECT CONVERT(varchar(5000), yourvarbincolumn, 0)
VARBINARY(MAX)列の場合、NVARCHAR(MAX)を使用する必要がありました
cast(Content as nvarchar(max))
または
CONVERT(NVARCHAR(MAX), Content, 0)
VARCHAR(MAX)は値全体を表示しませんでした