INFO: Mengkonversi Data biner ke String heksadesimal

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 104829 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

SQL Server tidak memiliki built-in Transact-SQL perintah untuk mengubah data biner ke string heksadesimal.

INFORMASI LEBIH LANJUT

Perintah Transact-SQL CONVERT mengkonversi data biner data karakter dalam satu byte untuk satu karakter fashion. SQL Server diperlukan setiap byte sumber data biner, mengkonversi ke nilai integer, kemudian menggunakan yang nilai integer sebagai nilai ASCII untuk tujuan karakter data. Perilaku ini berlaku untuk ganda, varbinary, dan timestamp datatypes.

Sebagai contoh, nilai biner 00001111 (0x0F dalam heksadesimal) dikonversi ke integer yang setara dengan yang 15, kemudian dikonversi menjadi karakter yang sesuai dengan nilai ASCII 15, yang terbaca.

Disimpan prosedur berikut dapat digunakan untuk mengembalikan sebuah string karakter yang berisi perwakilan heksadesimal nilai biner:
   create procedure sp_hexadecimal
     @binvalue varbinary(255)
   as
   declare @charvalue varchar(255)
   declare @i int
   declare @length int
   declare @hexstring char(16)

   select @charvalue = '0x'
   select @i = 1
   select @length = datalength(@binvalue)
   select @hexstring = "0123456789abcdef"

   while (@i <= @length)
   begin

     declare @tempint int
     declare @firstint int
     declare @secondint int

     select @tempint = convert(int, substring(@binvalue,@i,1))
     select @firstint = floor(@tempint/16)
     select @secondint = @tempint - (@firstint*16)

     select @charvalue = @charvalue +
       substring(@hexstring, @firstint+1, 1) +
       substring(@hexstring, @secondint+1, 1)

     select @i = @i + 1

   end

   select 'sp_hexadecimal'=@charvalue
				

Sebagai contoh, ketika perintah berikut batch dijalankan dengan ISQL:
     declare @bin varbinary(255)
     select @bin = @@dbts
     execute sp_hexadecimal @bin
     select 'isql' = @bin
     go
				

itu kembali output yang mirip dengan berikut ini:
     sp_hexadecimal
     ------------------------------------------------------------------
     0x01000000a60b0000

     (1 row affected)


     isql
     ------------------------------------------------------------------
     0x01000000a60b0000
     (1 row affected)
				

Properti

ID Artikel: 104829 - Kajian Terakhir: 14 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft SQL Server 4.21a Standard Edition
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Kata kunci: 
kbinfo kbother kbmt KB104829 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:104829

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com