У меня есть следующий запрос, который хорошо работает при работе непосредственно с DB2:
SELECT
RTRIM(CHAR(YR_I)) || RTRIM(CHAR(CASE WHEN MO_I = 1 THEN 1 WHEN MO_I = 2 THEN 1 WHEN MO_I = 3 THEN 1 WHEN MO_I = 4 THEN 1 WHEN MO_I = 5 THEN 1 WHEN MO_I = 6 THEN 1 ELSE 2 END)) || RTRIM(CHAR(QTR_I)) || (case when MO_I < 10 then rtrim(char(0)) || rtrim(char(MO_I)) else rtrim(char(MO_I)) end) || (case when WK_I < 10 then rtrim(char(0)) || rtrim(char(WK_I)) else rtrim(char(WK_I)) end)
AS ACCT_DATE_PER_I
FROM DB2.FCST_DATE
WHERE ACCT_D = (current_date - DAYOFWEEK_ISO(current_date) DAYS - 7 DAYS) with ur
Но когда я запускаю его через тест с H2 в качестве базы данных со следующей конфигурацией:
driverclassname: org.h2.Driver
url: jdbc:h2:mem:testdb;mode=DB2
username: test
password:
Я получаю следующее сообщение об ошибке:
org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL
Caused by: org.h2.jdbc.JdbcSQLException: Function "DAYOFWEEK_ISO" not found; SQL statement: <SQL STATEMENT>
at org.h2.message.DbException.getJdbcSQLException(DbException.java:357) ~[h2-1.4.197.jar:1.4.197]
at org.h2.message.DbException.get(DbException.java:179) ~[h2-1.4.197.jar:1.4.197]
at org.h2.message.DbException.get(DbException.java:155) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readJavaFunction(Parser.java:2699) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readFunction(Parser.java:2756) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readTerm(Parser.java:3102) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readFactor(Parser.java:2587) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readSum(Parser.java:2579) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readConcat(Parser.java:2544) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readCondition(Parser.java:2370) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readAnd(Parser.java:2342) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readExpression(Parser.java:2334) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readTerm(Parser.java:3252) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readFactor(Parser.java:2587) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readSum(Parser.java:2574) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readConcat(Parser.java:2544) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readCondition(Parser.java:2499) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readAnd(Parser.java:2342) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.readExpression(Parser.java:2334) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.parseSelectSimple(Parser.java:2291) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.parseSelectSub(Parser.java:2133) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.parseSelectUnion(Parser.java:1946) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.parseSelect(Parser.java:1919) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.parsePrepared(Parser.java:463) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.parse(Parser.java:335) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.parse(Parser.java:307) ~[h2-1.4.197.jar:1.4.197]
at org.h2.command.Parser.prepareCommand(Parser.java:278) ~[h2-1.4.197.jar:1.4.197]
at org.h2.engine.Session.prepareLocal(Session.java:611) ~[h2-1.4.197.jar:1.4.197]
at org.h2.engine.Session.prepareCommand(Session.java:549) ~[h2-1.4.197.jar:1.4.197]
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1247) ~[h2-1.4.197.jar:1.4.197]
at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:78) ~[h2-1.4.197.jar:1.4.197]
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208) ~[commons-dbcp-1.4.jar:1.4]
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208) ~[commons-dbcp-1.4.jar:1.4]
at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:433) ~[spring-jdbc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:376) ~[spring-jdbc-5.0.9.RELEASE.jar:5.0.9.RELEASE]
... 72 common frames omitted
Редактировать * мой вопрос, как мне решить его.Однако в ходе исследований я обнаружил, что не могу организовать некоторые специфические функции БД в H2.