gpt4 book ai didi

hsqldb - 如何在 Oracle 查询语法模式下使用 HSQLDB?

转载 作者:行者123 更新时间:2023-12-03 20:19:27 25 4
gpt4 key购买 nike

我正在尝试将 HSQLDB 用作 spring 应用程序中的嵌入式数据库(用于测试)。由于目标生产数据库是Oracle,我想使用HSQLDBs Oracle 语法模式特性。

在我使用的 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: Unexpected token: DATABASE in statement [SET DATABASE SQL SYNTAX ORA TRUE]



这是语法错误还是权限错误还是完全不同的东西?

谢谢 - 还有任何可能导致答案的指针。

鉴于 HSQL 是 jdbc:embedded-database 的 Spring 默认设置,并且目标是 Oracle,这种情况实际上应该很常见。但是,我在网络上没有发现任何涉及该问题的内容。

更新:

由于回答 #1,上述问题已得到解决。

但是,我现在得到另一个异常(exception):

org.springframework.dao.DataAccessResourceFailureException: Failed to populate database; nested exception is java.sql.SQLException: java.lang.RuntimeException: unsupported internal operation: StatementCommand unsupported internal operation: StatementCommand



知道这是由什么引起的吗?

最佳答案

这个选项是在 HSQLDB 2.0 中引入的。

您确定您使用的是正确的版本吗?
也许你有 1.8 仍然在某个地方的类路径中。

但这无论如何都不会让你在测试方面走得更远,因为这只会开启一些基本的语法“替换”,这里没有涉及真正的行为改变(我什至没有谈论更高级的 Oracle 特性,比如分析函数, CONNECT BY 或类似的东西)。

使用不会在生产中使用的 DBMS 来测试您的应用程序很少是一个好主意。这根本不是一个有效的测试。

关于hsqldb - 如何在 Oracle 查询语法模式下使用 HSQLDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4579078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com