Nasıl bir sütun değeri dönüştürmek için varbinary(max)
hiç varchar
insan tarafından okunabilir biçimde?
Nasıl bir sütun değeri dönüştürmek için varbinary(max)
hiç varchar
insan tarafından okunabilir biçimde?
Yanıtlar:
"Bir dönüştürme varbinary
için varchar
" farklı anlamlar taşıyabilir.
Değişken ikili SQL Server bir dize ikili temsilidir varsa (örneğin döküm tarafından döndürülen varbinary
doğrudan ya dan DecryptByPassPhrase
veya DECOMPRESS
sadece can fonksiyonlar) CAST
o
declare @b varbinary(max)
set @b = 0x5468697320697320612074657374
select cast(@b as varchar(max)) /*Returns "This is a test"*/
Bu, CONVERT
stil parametresi ile kullanmaya eşdeğerdir 0
.
CONVERT(varchar(max), @b, 0)
Diğer CONVERT
yanıtlarda belirtildiği gibi farklı gereksinimler için diğer stil parametreleri mevcuttur .
SELECT CAST('This is a test' AS VARBINARY(100))
olduğu gibi bir ifadenin sonucunu alır 0x5468697320697320612074657374
ve onu varchar
dizeye geri dönüştürür . Gunjan'ın cevabı onaltılık gösterimi bir dizge olarak döndürür ('5468697320697320612074657374') Muhtemelen bu yorum, OP'nin kabul ettiği şekliyle ihtiyacı için doğrudur.
CONVERT
istediğiniz şekilde seçmek için bir stil parametresine sahip olmanın nedenidir (benim yorumum varsayılan stildir) Dolayısıyla, bu yanıt şu anda kullanım durumunuz için ihtiyacınız olan şey olmayabilir, ancak diğer kullanım durumları için doğrudur. Asıl soru soran kişi dahil "insan tarafından okunabilir formu" belirten hex değil.
Aşağıdaki ifade benim için çalıştı:
SELECT CONVERT(VARCHAR(1000), varbinary_value, 2);
Burada stil seçimi (üçüncü parametre) hakkında daha fazla ayrıntı var.
Aslında en iyi cevap
SELECT CONVERT(VARCHAR(1000), varbinary_value, 1);
başındaki " 2
" keser " 0x
" varbinary
.
Anymore
<> any more
. Herhangi bir SPACE fazla = "daha büyük ölçüde veya derecede".
Bunu dene
SELECT CONVERT(varchar(5000), yourvarbincolumn, 0)
Bir VARBINARY(MAX)
sütun için şunu kullanmalıydım NVARCHAR(MAX)
:
cast(Content as nvarchar(max))
Veya
CONVERT(NVARCHAR(MAX), Content, 0)
VARCHAR(MAX) didn't show the entire value
Ben mücadele ederken aşağıya bir göz atın
bcp "SELECT CAST(BINARYCOL AS VARCHAR(MAX)) FROM OLTP_TABLE WHERE ID=123123 AND COMPANYID=123"
queryout "C:\Users\USER\Documents\ps_scripts\res.txt" -c -S myserver.db.com -U admin -P password
Referans: orijinal gönderi