首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何支持SqlServer的“.”在HyperSQL?

如何支持SqlServer的“.”在HyperSQL?
EN

Stack Overflow用户
提问于 2011-09-15 14:17:28
回答 2查看 160关注 0票数 0

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

我们在生产中使用Server,我试图使用HyperSQL作为我的数据库进行单元测试。我正在尝试测试一个创建SQL查询的类,因此不能选择将数据库挂起,因为真正的数据库所解析的查询是测试的一部分。

查询应该以SELECT * FROM EntAsdfDb007..Data_Table的形式创建,但如果愿意,我们可以使用模式名称( 'db‘)。

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

在HyperSqlDb中,我能够创建模式“DB”并在其中创建必要的表,并且能够在该模式中创建表,但即使在使用.setDatabaseName()设置数据库名称之后,也无法使用数据库名称进行查询。我得到的例外是:

代码语言:javascript
复制
Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: ENTASDFDB007

只是要明确一点:I是单元测试类,它使用SELECT * FROM EntAsdfDb007..Data_Table之类的SQL。我试图为单元测试目的设置一个HyperSql实例,但HyperSql似乎拒绝所使用的语法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-15 14:27:59

那是不可能的

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

票数 1
EN

Stack Overflow用户

发布于 2016-11-24 18:56:20

这是可能的。HSQLDB每个数据库都有一个目录。默认情况下,目录名称是公共的,您可以更改该名称。

代码语言:javascript
复制
ALTER CATALOG PUBLIC RENAME TO EntAsdfDb007

然后,您可以使用

代码语言:javascript
复制
SELECT * FROM EntAsdfDb007.db.Data_Table
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7432350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档