Я пытался запустить несколько модульных тестов, в которых используется функция to_char, которая работает для нашей базы данных Oracle, но для нашей базы данных h2 в памяти тестирование, похоже, не работает. Я пытаюсь отбросить псевдоним to_char и переопределить его для того, который работает, но когда я пытаюсь отбросить псевдоним to_char и создать его, он, похоже, не работает.
DROP alias if exists TO_CHAR;
CREATE alias TO_CHAR FOR "package.TEST.toChar";
Результат в: "org. h2.jdbc.JdbcSQLException: псевдоним функции "TO_CHAR" уже существует; оператор SQL: "
DROP alias TO_CHAR;
CREATE alias TO_CHAR FOR "package.TEST.toChar";
Результат:" org.h2.jdbc.JdbcSQLException: псевдоним функции "TO_CHAR" не найден; оператор SQL:".
Также пробовал с прямым сценарием sql следующим образом, но не работает:
DROP alias if exists TO_CHAR;
CREATE alias TO_CHAR as '
public static String toChar(String date, String pattern) throws Exception {
pattern = pattern.replaceAll("YY","yy");
pattern = pattern.replaceAll("DD","dd");
pattern = pattern.replaceAll("HH24|hh24","HH");
pattern = pattern.replaceAll("HH?!24|hh?!24","KK");
pattern = pattern.replaceAll("MON|mon","MMM");
pattern = pattern.replaceAll("MI|mi","mm");
pattern = pattern.replaceAll("SS|ss","ss");
pattern = pattern.replaceAll("AM|PM","aa");
pattern = pattern.replaceAll("T","");
SimpleDateFormat sm = new SimpleDateFormat(pattern);
java.util.Date dt;
if(date.length() > 10)dt = java.sql.Timestamp.valueOf(date);
else
dt = java.sql.Date.valueOf(date);
return sm.format(dt);
}';
Я думал, что это может быть отсутствие разрешений, но он не работает с пользователем =«sa» также посмотрел вверх, и они могут не разрешить переопределение функции to_char, поскольку кто-то заявил, что не позволяет переопределить некоторые функции: http://h2 -database.66688.n3.nabble.com / trunc-alias-is-read-only-and-избежать-эмуляции-Oracle-trunc-function-td4025947.html
Кто-нибудь знает, что мне здесь не хватает, или это невозможно переопределить?