具有DB2模式的H2无法识别关键字'分钟'

时间:2016-06-03 12:39:44

标签: hibernate db2 h2

我有一个包含多个集成测试的项目。为了提高这些测试的速度,我决定在运行时使用H2数据库。但我仍然希望我的applciation与DB2一起运行。

我指定H2以DB2模式运行:

url: "jdbc:h2:mem:TEST;\
      MODE=DB2;\
      DB_CLOSE_DELAY=-1;\
      DB_CLOSE_ON_EXIT=FALSE;\
      INIT=CREATE SCHEMA IF NOT EXISTS SYSIBM\\;\
      CREATE TABLE IF NOT EXISTS SYSIBM.SYSDUMMY1()"

执行此请求时,我的一项测试不起作用:

update batch set running=current timestamp where id=? and (running is null or running < current timestamp + 1 minute)

我有以下错误消息:

ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Syntax error in SQL statement "UPDATE BATCH SET RUNNING=CURRENT TIMESTAMP WHERE ID=?  AND (RUNNING IS NULL OR RUNNING < CURRENT TIMESTAMP + 1 MINUTE[*]) "; expected "[, ::, *, /, %, +, -, ||, ~, !~, NOT, LIKE, REGEXP, IS, IN, BETWEEN, AND, OR, ,, )";

似乎MINUTE无法识别。谁能帮我 ?

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用TIMESTAMPDIFF()来比较runningCURRENT_TIMESTAMP?该函数似乎得到H2以及DB2的支持。