HSQLDB 备份查询给出 COMPRESSED 错误

Posted

技术标签:

【中文标题】HSQLDB 备份查询给出 COMPRESSED 错误【英文标题】:HSQLDB Backup Query gives COMPRESSED error 【发布时间】:2017-08-07 04:41:44 【问题描述】:

手动备份 HSQLDB 目录:

BACKUP DATABASE TO 目录名 BLOCKING [ AS FILES ]

当我申请 calableStatement 时:

试试

cs = conn.prepareCall("BACKUP DATABASE COMPRESSED TO './backup/' BLOCKING ");
cs.execute();
cs.close();

捕获 (SQLException e)

e.printStackTrace();

1- 如果我添加 COMPRESSED 并执行,我会得到 SQL 异常:

java.sql.SQLSyntaxErrorException:意外令牌:需要压缩:TO 在语句 [BACKUP DATABASE COMPRESSED TO './backup/' BLOCKING ]

2- 如果我删除 COMPRESSED ...sql 查询抱怨应该添加(附加)COMPRESSED ...尽管创建了 zip 备份文件夹 ..

注意:使用 jave 8,HSQLDB 2.4 Server Remote,IntelliJ IDEA,数据库名称为 ProDB。

【问题讨论】:

【参考方案1】:

此命令的语法只允许在语句末尾进行设置:

BACKUP DATABASE TO <file path> [SCRIPT] [NOT] COMPRESSED [NOT] BLOCKING [AS FILES]

该建议似乎仅由 IntelliJ 生成。

请注意,仅在调用过程和函数时才需要使用 prepareCall。最好将 prepareStatement 用于所有其他执行。

【讨论】:

@fredt...1- 你对preparedStatement ..thanks 的看法是对的; 2-在 之后添加 COMPRESSED 或 NOT COMPRESSED 并没有删除 TO 之前的 sql 投诉……我同意你关于 intellij 的看法……这可能是一个错误。顺便说一句,备份文件夹被创建并在恢复请求时运行良好。

以上是关于HSQLDB 备份查询给出 COMPRESSED 错误的主要内容,如果未能解决你的问题,请参考以下文章

备份还原后 hsqldb 没有变化,直到重新启动

备份和恢复 HsqlDb 嵌入式文件(非数据库)

分发一个hsqldb数据库以供使用

HSQLDB 内存设置的 HSQLDB 约束违规和 SQL 查询日志

HSQLDB DbBackup dbPath

HSQLDB:优先选择查询而不是插入查询