我正在编写一个 JDBC 应用程序。我的任务是从 SQL 服务器获取数据加密它们,然后将它们作为varbinary
字段存储在另一个表中。我已经成功地将所有 sql 数据类型转换为二进制,除了十进制字段。
我正在使用getBytes()
JDBC 的方法来获取这个十进制字段的字节。但是我收到的字节不是有效字节,例如我在 sql 中运行一个查询,它将十进制转换为二进制
declare @deci decimal(18,2)
set @deci = 2.33
print cast(@deci as varbinary)
结果我得到了—— 0x12020001E9000000
(为了让我的应用程序正常工作,我需要在 JDBC 端使用这个二进制文件):(5 个字节)
但在 JDBC 方面,我得到的字节为(对于相同的值)- 2,1,-23,3,0
(5 个字节)(我正在打印每个字节的值)
有人可以帮我理解其中的区别吗?以及如何将这些 JDBC 字节转换为以上varbinary
提前致谢