java - 如何在 node.js 中为 IBM DB2 iSeries 选择的 sql 的 where 子句中使用固定长度的 CCSID 37 字符值

标签 java database db2

我的应用程序使用 Java 中的 db2.jar 连接到通过 DataDirect 方法连接的 IBM DB2 iSeries 数据库。当我在 where 子句中使用特定数据运行任何选择查询时,它不会检测到我在 where 条件中传递的值。该列的数据类型是 CHAR(7),我传递的值是“P544901”。我如何使用这个或任何其他 7 个字符的值并且数据库可以检测到它。是否有任何其他过程可以解决我的问题。

Java 示例代码 -

String sql = "SELECT poMast.ORDNO  from AMFLIBL.POMAST AS poMast WHERE poMast.ORDNO =  ? ";
Class.forName("com.ddtek.jdbc.db2.DB2Driver");
String url = "jdbc:datadirect:db2://hostname:port;DatabaseName=dbName;";
Connection con = DriverManager.getConnection(url, "username","password");
PreparedStatement preparedStatement = con.prepareStatement(sql);
preparedStatement.setString(1, 'P544901');
ResultSet rs = preparedStatement.executeQuery();
System.out.println("ResultSet : \n");
System.out.println(" VNDNO");
while (rs.next())
{
   System.out.println(rs.getString("ORDNO"));
}

最佳答案

尝试这样修改(用双引号代替单引号)

preparedStatement.setString(1, "P544901");

关于java - 如何在 node.js 中为 IBM DB2 iSeries 选择的 sql 的 where 子句中使用固定长度的 CCSID 37 字符值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40786785/

相关文章:

从 z/OS 大型机上的 USS 连接到 DB2

java - 当从另一个类访问时,Quartz JobScheduler dataMap 似乎正在丢失数据

java - 数据库连接未关闭

java - 标准 FTP 登录 java 类

mysql - 如何从 MySQL 架构获取最新消息?

database - 数据库级加密中的数据泄漏

java - Appium测试在应用中心返回退出代码2错误

database - 可同时读写的大表

sql - DB2 sql查询查找字符串中的非ascii字符

java - 如何连接hibernate和DB2