java - 使用 Prepared Statement 从列大小为 char[2] 的 Oracle 数据库中获取结果
问题描述
我在我的 java 代码中使用 Prepared Statement 从 Oracle 数据库中获取结果。我表中的字段 (x) 之一是 char(2)。对于这个字段,我传递的参数如下:
setString (1, "1")
但是在这种情况下,查询不会返回任何结果。该表具有 x=1 的行。如果我硬编码查询中的值,我也会通过我的代码获得结果,例如
select *
from abc where x=1
只有当 x 的长度为 1 时,我才会遇到这个问题。例如
setString(1, "47")
,在我的 java 代码中返回正确的值,这些值与数据库中 x=47 的行匹配。
如果我在 1 之后传递setString(1, "1 ")
一个空格,我会得到正确的值。但是setString(1, " 1")
,即 1 之前的空格,不给出任何值。
如果这是 Prepared Statement 的已知问题,或者我做错了什么,请指导我。我该如何解决这个问题。
解决方案
推荐阅读
- amazon-web-services - 通过 http 标头搜索 Athena AWS WAF 日志
- rabbitmq - 单个 Windows 机器中的多个 rabbitmq-broker 实例
- javascript - 需要图像显示在按钮旁边的文本上
- angular - Angular:重新初始化反应形式材料
- c - 在 C http 请求中编辑用户代理
- typescript - 从 TypeScript 声明文件中导出 newable 函数
- apache-spark - 如果不建议将 Cache & Persist 用于 Base RDD(数据帧中的文件加载),那么文件大小大于内存大小的解决方案是什么?
- rust - 如何在为“非默认目标”(如 UEFI)开发的板条箱中执行测试?
- python - Python不会在特定行之后将字符串转换为浮点数
- sql - 带有 integer[] 和另一个数组的 postgresql 搜索列