varchar类型能不能存储BYTE[]数组

xiaojin093 2015-03-17 11:50:23
sql erver varchar类型能不能存储BYTE[]数组?我知道varbinrary可以存储,想问下varchar能不能存?比如有5个byte,存进去后是占5个字节吗?
...全文
457 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2015-03-19
  • 打赏
  • 举报
回复
可把二进制转为字符再存储 --可用系统函数处理 SELECT master.dbo.fn_varbintohexstr(0x01)
Tiger_Zhao 2015-03-19
  • 打赏
  • 举报
回复
#4:不可以的。
string->byte[]->string 因为都是编码内合法的字符,可以正确还原。
byte[]->string->byte[] 第一步的时候就可能出错,数组的值可以在 U+0000~U+FFFF 全范围内取值,即使unicode编码也有些属于非法字符,会被替换掉。所以没法保证还原出一样的数组来。
还在加载中灬 2015-03-17
  • 打赏
  • 举报
回复
如果你把Byte[]组装成string存到varchar的确是5个字符
tcmakebest 2015-03-17
  • 打赏
  • 举报
回复
能装珍珠的容器能装珍珠项链, 能装珍珠项链的容器不一定能装珍珠. 珍珠:byte 珍珠项链:char
Tiger_Zhao 2015-03-17
  • 打赏
  • 举报
回复
不能。
varchar是语言相关的,如果字节表示的编码对应的不是该语言的有效字符,可能被替换成问号或直接丢弃。
不能保证字节内容不变,所以不能用varchar存储。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧