web-dev-qa-db-ja.com

SQL Serverの文字列へのvarbinary

人間が読める形式で列の値をvarbinary(max)からvarcharに変換する方法は?

83
Bilgin Kılıç

varbinaryvarcharに変換する」とは、意味が異なる場合があります。

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で他のスタイルパラメーターを使用できます。

78
Martin Smith

次の式は私のために働いた:

SELECT CONVERT(VARCHAR(1000), varbinary_value, 2);

ここ は、スタイルの選択に関する詳細です(3番目のパラメーター)。

128
Gunjan Juyal

実際、最良の答えは

SELECT CONVERT(VARCHAR(1000), varbinary_value, 1);

2」を使用すると、varbinaryの先頭で「0x」が切り捨てられます。

49
Lara Mayugba

これを試して

SELECT CONVERT(varchar(5000), yourvarbincolumn, 0)
13
dmajkic

VARBINARY(MAX)列の場合、NVARCHAR(MAX)を使用する必要がありました

cast(Content as nvarchar(max))

または

CONVERT(NVARCHAR(MAX), Content, 0)

VARCHAR(MAX)は値全体を表示しませんでした

0
kristoffer_o