【问题标题】:Java 1.7 vs 1.8 - code stopped working in OracleDBJava 1.7 vs 1.8 - 代码在 OracleDB 中停止工作
【发布时间】:2020-09-05 07:47:15
【问题描述】:

所以我有一个 java 类,里面有一个函数。 全部存储在 oracle db (11.2.0.4) 中。

在将 java 从 1.7 升级到 1.8 后,提到的代码停止工作:

#sql { INSERT INTO table(filename,length, mod_date, type) VALUES (:element, :length, to_date(:dateStr,'dd-mm-yyyy hh24:mi:ss'), :type) };

它给了我这样的错误: 【错误】(0:0):编译器(1.7.0_251)出现异常。检查数据库是否有重复项后,请在 Java 错误数据库 (http://bugreport.java.com/bugreport/) 中提交错误。包括你的程序 [错误] (0:0): java.lang.NoSuchMethodError

【问题讨论】:

  • 能否提供一个最小的、完整的、可验证的例子,以便我们重现它?
  • 数据库是否支持运行Java 8?
  • 编译器似乎在 1.7 上仍然基于错误消息,所以无论你升级到 1.8 都不是“一切”。
  • 所以在数据库上有一些事情要做,使用安装的 1.8 来强制它? @Kayaman
  • 好的,我想我发现了问题所在,解决方案在这个主题:stackoverflow.com/questions/28164252/… 11g 仅支持 1.6...

标签: java oracle oracle11g


【解决方案1】:

好的,我将上述代码更改为如下代码: String sql = " INSERT INTO table(filename,length, mod_date, type) VALUES (?,?,?,?)"; try { Connection conn = DriverManager.getConnection("jdbc:default:connection:"); PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, element); pstmt.setFloat(2, length); pstmt.setDate(3, sqlDate); pstmt.setString(4, type); pstmt.executeUpdate(); pstmt.close(); } catch (SQLException e) { System.err.println(e.getMessage()); }

它奏效了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 2022-06-17
    相关资源
    最近更新 更多