我正在尝试使用 HSQL 进行测试。在生产中,代码针对 DB2 数据库运行。我想打开 HSQL 的 DB2 语法并针对它运行生产 SQL(或尽可能多地运行它)。
根据文档,在 DB2 语法模式下,nextval for
支持表达式。
我已经使用连接属性打开了 DB2 语法模式sql.syntax_db2=true
,以及:
set database sql syntax db2 true;
但是,我无法使用nextval for
,尽管语法next value for
可以正常工作:
values (next value for test_seq); -- returns the next value
values (nextval for test_seq); -- results in an error
错误是:
Error: user lacks privilege or object not found: NEXTVAL
SQLState: 42501
ErrorCode: -5501
我没有正确激活 DB2 语法模式,还是我做错了什么?我以 SA 身份登录,这可能是权限问题吗?