tl;博士:我正在尝试对一些说明数据库名称的SqlServer查询进行单元测试,但它们似乎在HyperSql中不起作用。



我们正在生产中使用Sql Server,我正在尝试将HyperSQL用作单元测试的数据库。我正在尝试测试创建SQL查询的类,因此对数据库进行存根处理不是一种选择,因为由真实数据库解析查询是该测试的一部分。

尽管可以根据需要使用模式名称('db'),但查询应该以SELECT * FROM EntAsdfDb007..Data_Table的形式创建。

根据我对SqlServer的SELECT格式的了解,它允许您指定数据库名称,然后指定架构名称。另外,您可以删除数据库的名称并进行推断。

在HyperSqlDb中,我已经能够创建模式'​​db'并在其中创建必要的表,并且能够在该模式中创建表,但是即使使用设置数据库名称后,我也无法使用数据库名称进行查询。 .setDatabaseName()。我得到的异常是:

Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: ENTASDFDB007


只是要清楚一点:我正在对使用像SELECT * FROM EntAsdfDb007..Data_Table这样的SQL的类进行单元测试。我正在尝试为单元测试设置HyperSql实例,但是HyperSql似乎拒绝使用所使用的语法。

最佳答案

那是不可能的。

HyperSQL不能更改为接受非标准的命名方案。

关于java - 如何在HyperSQL中支持SqlServer的“..”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7432350/

10-09 05:07