Я пытаюсь использовать HSQLDB как встроенную базу данных в приложении spring (для тестирования). Поскольку целевой производственной базой данных является 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, этот сценарий должен быть очень распространенным. Тем не менее, я ничего не нашел в Интернете, даже коснувшись проблемы.
Update:
Вышеупомянутая проблема решена благодаря ответу # 1.
Однако теперь я получаю другое исключение:
org.springframework.dao.DataAccessResourceFailureException: не удалось заполнить базу данных; Вложенное исключение: java.sql.SQLException: java.lang.RuntimeException: неподдерживаемая внутренняя операция: неподдерживаемая внутренняя операция StatementCommand: StatementCommand
Любая идея, что это вызвано?