Bagaimana cara mengonversi nilai kolom dari varbinary(max)
menjadi varchar
dalam bentuk yang dapat dibaca manusia?
sql
sql-server
sql-server-2005
tsql
Bilgin Kılıç
sumber
sumber
Jawaban:
"Mengubah a
varbinary
menjadivarchar
" bisa memiliki arti yang berbeda.Jika varbinary adalah representasi biner dari string di SQL Server (misalnya dikembalikan oleh casting untuk
varbinary
langsung atau dariDecryptByPassPhrase
atauDECOMPRESS
fungsi) Anda hanya bisaCAST
ituIni sama
CONVERT
dengan menggunakan dengan parameter gaya0
.Parameter gaya lain tersedia dengan
CONVERT
untuk persyaratan yang berbeda seperti yang dicatat dalam jawaban lain.sumber
SELECT CAST('This is a test' AS VARBINARY(100))
yang ada0x5468697320697320612074657374
di pemeriksaan default saya dan mengubahnya kembali kevarchar
string. Jawaban Gunjan mengembalikan representasi hex sebagai string ('5468697320697320612074657374') Agaknya interpretasi ini benar untuk kebutuhan OP karena mereka menerimanya.CONVERT
memiliki parameter gaya untuk memilih cara yang Anda inginkan (interpretasi saya adalah gaya default) Jadi jawaban ini mungkin bukan yang Anda butuhkan untuk kasus penggunaan Anda saat ini, tetapi benar untuk kasus penggunaan lain. Termasuk penanya asli yang menentukan "bentuk yang dapat dibaca manusia" bukan hex.Ekspresi berikut berhasil untuk saya:
Berikut adalah detail lebih lanjut tentang pilihan gaya (parameter ketiga).
sumber
Sebenarnya jawaban terbaik adalah
menggunakan "
2
" memotong "0x
" di awalvarbinary
.sumber
Coba ini
sumber
Untuk
VARBINARY(MAX)
kolom, saya harus menggunakanNVARCHAR(MAX)
:Atau
sumber
Saya mencoba ini, itu berhasil untuk saya:
sumber
Silakan coba di bawah ini karena saya berjuang untuk posting yang terlalu asli [Disini] [1]
sumber