0

テストに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でログインしていますが、権限の問題でしょうか?

4

1 に答える 1

1

ドキュメントに誤りがあります。DUAL テーブルは Oracle 構文と同じ方法でサポートされますが、NEXTVAL は として使用される Oracle 形式test_seq.NEXTVALです。

DB2 はNEXT VALUE FOR test_seq、NEXT VALUE の代替として NEXTVAL をサポートし、許可します。これは、HSQLDB の次のリリースでサポートされる予定です。

于 2013-02-27T15:09:05.170 に答える