【问题标题】:Prepared Statement not working while Statement is working with Java and Oracle当 Statement 与 Java 和 Oracle 一起使用时,Prepared Statement 不起作用
【发布时间】:2017-07-14 09:33:10
【问题描述】:

我正在尝试使用 Java 1.6 和 Oracle 9i 运行一个简单的查询来获取数据。 即使我通过语句获得结果,但在使用 preaparedstatement 结果集时返回空行。有没有人遇到过同样的问题?

我的 JDBC 驱动版本是 10.1.0.5.0 DB 是 Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production

下面是程序。

String query = "SELECT count(SEVERITY) as CNT FROM TICKET_TABLE where upper(customerid)=?" ;
PreparedStatement pst =null;
ResultSet lResultSet = null;
pst = con.prepareStatement(query);      
pst.setString(1, "CUST_A");
lResultSet = pst.executeQuery();                
while(lResultSet.next()) {                      
  i = lResultSet.getInt("CNT");
}
lResultSet.close();
pst.close();
con.close();

【问题讨论】:

  • 如果您希望只有一行,应将while 替换为if...
  • 错误 - 虽然很好。没有解释为什么 PreparedStatement 没有结果。
  • 不是答案,只是评论...
  • 顺便说一句,“空行”是什么意思?
  • 你能告诉我们你使用“语句”的代码吗?

标签: java jdbc prepared-statement


【解决方案1】:

您可以检查您正在使用的oracle驱动程序与java版本和数据库版本的兼容性。

其次,通过首先通过任何 Oracle 客户端工具运行查询条件来确认查询条件假设返回记录。

【讨论】:

  • 与 sqldeveloper 4.2 相同的查询返回数据
  • 确认您使用的jdbc驱动与db版本、java版本和操作系统的兼容性。 Oracle 驱动程序有时会很有趣。
  • APP-1 [Not Working] Java 1.5 ,JDBC driver version is 9.2.0.1.0 DB is Oracle DB Ver is Oracle9i Enterprise Edition Release 9.2.0.8.0 - Solaris 5.10 上安装的 64 位生产 Oracle APP-2 [工作] ======== Java 1.5,JDBC 驱动程序版本是 9.2.0.1.0,DB 是 Oracle DB Ver 是 Oracle9i Enterprise Edition Release 9.2.0.8.0 - 安装在 Solaris 5.10 上的 64 位生产 Oracle App3 [已工作] ==== Java 1.5,JDBC 驱动程序版本是 9.2.0.1.0 DB 是 Oracle DB Ver 是 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 生产 Oracle 安装在 Windows Enterprise 2003 上
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多