【问题标题】:oracle sql date errorsoracle sql日期错误
【发布时间】:2021-08-13 04:20:04
【问题描述】:

我需要你的帮助!

我有一个在 jdbcTemplate 中执行的 sql 查询,如下所示:

public String Insertquery(FichierEclate e) {
            String var="(null)";
            String tableName="TF02_HISTO_"+Country;
            String sql = "INSERT INTO " + tableName + " (TF02TFID, TF02STID, TF02DATE, TF02UID) VALUES (" + e.getAffaireID() + ", 4, TO_TIMESTAMP('" +e.getDate()+ "','yyyy-mm-dd hh24:mi:ss')," + var +")";
            return sql;
        }

那我就打个电话:

String Inquery=Insertquery(item);

 vJdbcTemplate.execute(Inquery);

我为更新查询做了同样的步骤,它工作得非常好!!但是在插入查询中,它显示了这个错误:

 StatementCallback; SQL [INSERT INTO TF02_HISTO_MN (TF02TFID, TF02STID, TF02DATE, TF02UID) VALUES (25472563, 4, TO_TIMESTAMP('2021-03-01 00:45:00.0','yyyy-mm-dd hh24:mi:ss'),(null))]; ORA-01830: date format picture ends before converting entire input string
; nested exception is java.sql.SQLDataException: ORA-01830: date format picture ends before converting entire input string

我认为我不需要 TO_TIMESTAMP 或 TO_DATE 因为 jdbcTemplate 会自动进行转换! 当我删除 TO_TIMESTAMP 时,我收到类型错误:

missing comma

怎么办!!!! 顺便说一句,这个对象:FichierEclate e 正在使用时间戳类型的属性“日期”,而我正在使用 oracle!这是我的数据库中写入的日期格式示例:

2021-03-01 00:45:00

怎么办?!!!!!!!!!!

【问题讨论】:

  • “怎么办?”使用绑定变量;不要使用字符串连接构建查询。
  • 除了@MT0说的避免sql注入,你为什么不把你的e.getDate()变量转换成字符串,看看是怎么格式化的?
  • 我会回显@MT0,请使用绑定变量。但是,对于您遇到的特定错误,请注意您传递给 to_timestamp 的字符串有一位小数秒。如果您真的想避免使用绑定变量,则需要确保您使用的格式掩码与您要转换的字符串匹配。
  • @MTO 你的答案就是解决方案!非常感谢:)

标签: java sql oracle spring-batch


【解决方案1】:

来自this answer,使用绑定变量:

vJdbcTemplate.update(
  "INSERT INTO TF02_HISTO_" + country
    + " ( TF02TFID, TF02STID, TF02DATE, TF02UID ) VALUES ( ?, 4, ?, null )",
  item.getAffaireID(), item.getDate()
);

【讨论】:

    【解决方案2】:

    这就是解决方案!谢谢大家的帮助:)

    vJdbcTemplate.update(
      "INSERT INTO TF02_HISTO_" + country
        + " ( TF02TFID, TF02STID, TF02DATE, TF02UID ) VALUES ( ?, 4, ?, null )",
      item.getAffaireID(), item.getDate()
    );
    

    【讨论】:

      猜你喜欢
      • 2014-11-21
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多