sql-server - 我可以在 SQL 中将变量设置为数据类型长度吗?
问题描述
我有一个带有反转字节的十六进制变量。为了反转字节,我找到了二进制类型的解决方案,并且反转它取决于它的大小。因为我必须反转变量@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)))
解决方案
推荐阅读
- reactjs - 单击按钮时未按预期过滤数组
- angular - Angular MatTable 不会使用来自表单的数据进行更新
- python - PySide6:当我使用自定义类的重写函数 sizeHint() 时出现错误“致命 Python 错误:无法从堆栈溢出中恢复”
- delphi - 虚拟树视图如何只显示孩子=isvisible 而不是母亲(isinvisible=false)
- django - 如何从 Django 的历史中清除路径?
- reactjs - Type"X' is not assignable to type "Y" with typescript
- docusignapi - docusign 列表信封 API 中的 `lastModifiedDateTime` 和 `statusChangedDateTime` 有什么区别?
- angular - 如何在一个 ASP.NET Core 应用程序中使用两种不同版本的 Bootstrap
- jquery - 使用对象数组构建 jQuery 数据表
- python - 用更少的内存为 LSTM 时间序列创建数据集