在 Microsoft SQL Server 中从十六进制文字插入 varbinary 值

2024-03-21

我有一个 SpringBoot 应用程序,我使用 jdbcTemplate 将一行插入到 mssql

int numOfRowsAffected = remoteJdbcTemplate.update("insert into dbo.[ELCOR Resource Time Registr_]  "
                + "( [Entry No_], [Record ID], [Posting Date], [Resource No_], [Job No_], [Work Type], [Quantity], [Unit of Measure], [Description], [Company Name], [Created Date-Time], [Status] ) "
                + " VALUES (?,CONVERT(varbinary,?),?,?,?,?,?,?,?,?,?,?);",

                ELCORResourceTimeRegistr.getEntryNo(), 
                ELCORResourceTimeRegistr.getEntryNo()), 
                ELCORResourceTimeRegistr.getPostingDate(),
                ELCORResourceTimeRegistr.getResourceNo(), 
                jobNo,
                ELCORResourceTimeRegistr.getWorkType(), 
                ELCORResourceTimeRegistr.getQuantity(),
                ELCORResourceTimeRegistr.getUnitOfMeasure(), 
                ELCORResourceTimeRegistr.getDescription(),
                ELCORResourceTimeRegistr.getCompanyName(), 
                ELCORResourceTimeRegistr.getCreatedDate(), 
                0);

的价值ELCORResourceTimeRegistr.getEntryNo()是一个带有值的字符串0x00173672

但数据库中插入的是<30007800 30003000 31003700 33003600 37003200>

ELCORResourceTimeRegistr.getEntryNo().getClass().getCanonicalName() => java.lang.String

The CONVERT 函数的文档 https://learn.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017#binary-styles表示二进制类型的默认“样式”是0:

将 ASCII 字符转换为二进制字节,或将二进制字节转换为 ASCII 字符。每个字符或字节都按 1:1 进行转换。

So,

SELECT CONVERT(VARBINARY, '0x00173672') AS foo;

returns

foo
--------------------------------------------------------------
0x30783030313733363732

它们是十六进制文字的 ASCII 字节值,而不是十六进制字节本身。为了转换为解释十六进制文字,您需要使用样式1, i.e.

SELECT CONVERT(VARBINARY, '0x00173672', 1) AS foo;

返回

foo
--------------------------------------------------------------
0x00173672
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Microsoft SQL Server 中从十六进制文字插入 varbinary 值 的相关文章

随机推荐

  • 类型错误:不是构造函数

    我只是将代码用作有关 JavaScript 类的学习练习 该代码产生 TypeError SimpleLogger 不是构造函数 该类似乎已导出 但我无法在 main js 文件中实例化它 我已经减少了代码以仅显示问题 我想知道是否有人能发
  • 从 ant 类路径中排除 jar

    我正在尝试在一些使用 ant 脚本的遗留项目上进行 干净的 Maven 设置 我对蚂蚁了解不多 所以我的问题可能显得很幼稚 我快完成了 但是由于类路径中存在冗余 交付蚂蚁脚本失败了 如果我理解构建 这些行应该添加到 提供 范围内每个库的类路
  • 多个构造函数与 Structuremap 改变范围?

    为了说明问题 这是我的设置的简化版本 我有一家这样的工厂 public interface IFactory public class Factory IFactory public Factory Console WriteLine pa
  • 同一 AWS Cognito 用户池中的多个应用程序对于同一用户来说 cognitoID 是否相同?

    我有一个 Cognito 用户池 可以与我的 iOS 和 Android 应用程序配合良好 该池有一个客户端密钥 我现在想建立网络身份验证 Cognito 的 javascript sdk 不支持使用应用程序客户端密钥配置的用户池 假设我在
  • Google 的 Vision Api protobuf 对 Python 字典的响应对象

    我正在开发一个项目 需要使用 Google 的 Vision API 分析图像并将响应发布到 Dynamodb 表 我已经成功实现了 Vision API 但无法将其响应转换为 Python 字典 这是我尝试过的 if form is va
  • Pandas DF 有一列包含列表。如何使用此列表的每个值重复行?

    我有一个像这样的熊猫数据框 title author year type 0 t1 a1 1980 article 1 t2 a2 a3 a4 1983 article 2 t3 a5 1982 article 3 t4 a6 1977 a
  • jQuery 验证中的正则表达式 - jQuery 中的单引号问题

    我有一个正则表达式来验证密码是否包含数字 小写和大写字符 下面这个效果很好 但是当我在 jQuery 验证中使用它时 txtPassword required true regex Regex Regex 8 16 d a z A Z am
  • 如何使用脚本重新创建 IPython 的“--pylab”选项的效果?

    我想创建一个与 IPython 执行相同操作的配置文件 pylab 用手 标记 为了实现这一目标 脚本的内容应该是什么 包导入 名称空间指定 设置等 作为替代方案 我还想知道是否有一种方法可以检查 pylab当前 IPython 会话启动时
  • 什么是 ls -F (ls --classify) [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 看着普通旧版的手册页ls http linux die net man 1 ls我看到有一个标志 F F classify append
  • Int 转换不起作用[重复]

    这个问题在这里已经有答案了 我正在为我的游戏创建高分功能 但无法让它发挥作用 这是我的方法 def game over self Game over Screen keys pygame key get pressed self gameo
  • 正则表达式麻烦,转义引号

    基本上 我正在传递一个字符串 我需要以与 nix shell 标记命令行选项大致相同的方式对其进行标记 假设我有以下字符串 Hello World Hello Universe Hi 我怎样才能把它变成一个三元素列表 你好世界 你好宇宙 H
  • magento 产品页面中买家需填写的字段

    我一直在寻找 但找不到类似的东西 我需要创建一个产品页面 买家在将产品添加到购物车之前将在其中填写一些文本字段 大部分类似于此页面的内容 http bitly com Sw4jzR http bitly com Sw4jzR 添加到购物车时
  • 在容器和主机之间共享“node_modules”文件夹

    这是一个非常热门的话题 但我从未真正找到解决方案 您可能知道 当我们在容器中有一个卷并且安装依赖项时 使用npm i或其他东西 从 Dockerfile 具有默认权限 Npm 将创建一个node modules容器中的文件夹root roo
  • 使用多线程 vb.net 时更新文本框

    My code Imports System IO Public Class Form1 Dim thread As System Threading Thread Dim thread2 As System Threading Threa
  • 如何在Python中比较两个时区?

    Example import pytz b pytz timezone Europe Rome c pytz timezone Europe Berlin 然而 这两个时区具有不同的名称但代表相同的事物 b c 返回 false b zon
  • RStudio Run命令运行两次问题[重复]

    这个问题在这里已经有答案了 我在使用 RStudio 时遇到了一个奇怪的问题 当我使用任何命令运行脚本时 例如 Ctrl R Ctrl Enter 或 RStudio 上的实际运行命令 该命令会运行两次 我在互联网上找不到任何与此相关的信息
  • C++、多态性和迭代器

    我想要一个存储接口 抽象类 和一组存储实现 SQLite MySQL Memcached 用于存储已知类的对象并从存储中检索子集 对我来说 清晰的界面是 class Storable int id blah blah blah string
  • JSP/GlassFish:如何正确设置 UTF-8 编码

    我正在寻求帮助 将堆栈中的所有层都转换为 UTF 8 编码 我发现这篇好文章 http www javapractices com topic TopicAction do Id 206 http www javapractices com
  • AWS - 错误 504 - 网关超时 - Flask 应用程序

    昨天 我在 Amazon Elastic Beanstalk 上部署了我的第一个 Flask 应用程序 应用程序正在运行 但当我按下启动抓取过程的按钮时出现问题 这个过程相当长 可能需要大约 3 4 分钟 显然在我按下按钮一分钟后 我收到了
  • 在 Microsoft SQL Server 中从十六进制文字插入 varbinary 值

    我有一个 SpringBoot 应用程序 我使用 jdbcTemplate 将一行插入到 mssql int numOfRowsAffected remoteJdbcTemplate update insert into dbo ELCOR