使用TransactSQL将Byte Array转换为字符串

Osc*_*car 6 c# t-sql sql-server bytearray

我们使用c#和BinaryFormatter将varBinary类型存储在数据库中.我们转换为字节数组,然后保存到DataBase

public static byte[] ToBytes(stringvalue)
{
  if (value == null)
    return null;

  byte[] inMemoryBytes;
  using (MemoryStream inMemoryData = new MemoryStream())
  {
    new BinaryFormatter().Serialize(inMemoryData, value);
    inMemoryBytes = inMemoryData.ToArray();
  }

  return inMemoryBytes;
}
Run Code Online (Sandbox Code Playgroud)

好的,所以如果我们保存char"a",我们可以在数据库中看到"0x0001000000FFFFFFFF0100000000000000060100000001610B".我们可以检索数据并再次转换为字符串.
我们是否可以仅使用transact SQL将此二进制值("0x0001000000FFFFFFFF0100000000000000060100000001610B")转换为char("a")(因此我们可以从sql server控制台进行修改,插入和比较)?

非常感谢.

Rub*_*ias 4

你可以使用更简单的东西,例如

Encoding.Default.GetBytes("a");
Run Code Online (Sandbox Code Playgroud)

这将返回“61”并且可以更容易地转换为 varchar,只需运行以下命令:

create table #sample (content varbinary(max));
insert into  #sample values (0x61)
select cast(content as varchar) from #sample
Run Code Online (Sandbox Code Playgroud)