问题描述
我有一个带有反转字节的十六进制变量。为了反转字节,我发现了二进制类型的解决方案,并将其反转取决于其大小。由于我必须反转变量@card的字节,字节大小可以不同,因此我想声明变量@binarylen,所以键入int,我想将其设置为数据类型长度,但会收到错误消息“语法错误:期望ID,INTEGER或QOUTED_ID” '。我能以某种方式做到这一点吗?
DECLARE @card_hex nvarchar(max)
DECLARE @card_int bigint
DECLARE @badgenr nvarchar(max)
set @badgenr= '120224205061286445'
-- convert it to hex
set @card_int = convert (bigint,(@badgenr))
print @card_int
set @card_hex = CONVERT(NVARCHAR(31),CONVERT(VARBINARY,@card_int),2)
print @card_hex
--remove leading zeroes:
set @card_hex = (select substring(@card_hex,patindex('%[^0]%',@card_hex),20))
print @card_hex
DECLARE @bitelen as int
set @bitelen= LEN(@card_hex)
declare @binarylen as int
set @binarylen=@bitelen/2 + @bitelen%2
declare @reverse as binary(@binarylen)
set @reverse=( SELECT cast(reverse(cast(@card_int AS BINARY(@binarylen))) AS BINARY(@binarylen)))
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)