HSQLDB:用户缺少权限或找不到对象错误
Posted
技术标签:
【中文标题】HSQLDB:用户缺少权限或找不到对象错误【英文标题】:HSQLDB: user lacks privilege or object not found error 【发布时间】:2017-10-18 20:14:46 【问题描述】:我正在查看一些旧代码,但在运行其中一个单元测试时遇到了问题。
代码是:
String sql = "insert into customers" +
"(name, age, date, id) " +
" values " +
" (?, ?, ?, CUSTOMERS_SEQ.NEXTVAL)";
if (LOG.isDebugEnabled()) LOG.debug("doInsert: SQL query = " + sql);
int count;
PreparedStatement pStmt = null;
try
// insert!
pStmt = conn.prepareStatement(sql); // fails over here
//... do other stuff
//...more things
但是,当尝试准备语句时,它会抛出错误
用户缺少权限或找不到对象:CUSTOMERS_SEQ.NEXTVAL。
我正在阅读有关错误本身的信息,但似乎找不到任何东西。奇怪的是,当我在本地运行查询时
Select CUSTOMERS_SEQ.NEXTVAL from CUSTOMERS
没问题。
我们将不胜感激。
【问题讨论】:
【参考方案1】:表达式CUSTOMERS_SEQ.NEXTVAL
不是SQL 标准表达式,而是Oracle 语法之一。您需要启用以下语句的 Oracle 语法兼容性:
SET DATABASE SQL SYNTAX ORA TRUE
或者在连接 URL 中包含sql.syntax_ora=true
。
启用此兼容模式后,INSERT 语句应该可以工作(它确实适用于 HSQLDB 2.4.0)
等效的 SQL 标准表达式是:
NEXT VALUE FOR CUSTOMERS_SEQ
【讨论】:
这真的很有帮助!谢谢!以上是关于HSQLDB:用户缺少权限或找不到对象错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Spring Boot 中进行选择语句时,HSQLDB 用户缺少权限或找不到对象错误
HSQLDB:java.sql.SQLSyntaxErrorException:用户缺少权限或找不到对象
SpringBoot 用户缺少权限或找不到对象 HSQLDB
Java HQL org.hsqldb.HsqlException:用户缺少权限或找不到对象
Hibernate、mysql 和 Tomee - org.hsqldb.HsqlException:用户缺少权限或找不到对象