Я пытаюсь использовать HSQLDB в качестве встроенной базы данных в весеннем приложении (для тестирования). Поскольку целевой производственной базой данных является Oracle, я хотел бы использовать функцию синтаксического режима Oracle HSQLDBs.
В конфигурации Spring я использую
<jdbc:embedded-database type="HSQL" id="dataSource">
</jdbc:embedded-database>
<jdbc:initialize-database data-source="dataSource" enabled="true">
<jdbc:script location="classpath:schema.sql"/>
</jdbc:initialize-database>
А в schema.sql вверху я написал:
SET DATABASE SQL SYNTAX ORA TRUE;
Однако при выполнении теста я получаю следующую ошибку:
java.sql.SQLException: неожиданный токен: DATABASE в операторе [SET DATABASE SQL SYNTAX ORA TRUE]
Это синтаксическая ошибка или ошибка прав доступа или что-то совсем другое?
Спасибо - также за любые указатели, которые могут привести к ответу.
Учитывая, что HSQL является значением по умолчанию для Spring для jdbc: embedded-database, а целью является Oracle, этот сценарий на самом деле должен быть очень распространенным. Однако в Интернете я не нашел ничего, даже касаясь этой проблемы.
Обновление:
Проблема, описанная выше, решена благодаря ответу № 1.
Однако теперь я получаю еще одно исключение:
org.springframework.dao.DataAccessResourceFailureException: не удалось заполнить базу данных; вложенным исключением является java.sql.SQLException: java.lang.RuntimeException: неподдерживаемая внутренняя операция: StatementCommand неподдерживаемая внутренняя операция: StatementCommand
Есть идеи, чем это вызвано?