如何在 HSQLDB 导出命令中启用转义?
Posted
技术标签:
【中文标题】如何在 HSQLDB 导出命令中启用转义?【英文标题】:How to enable escaping in the HSQLDB export command? 【发布时间】:2011-11-17 15:53:18 【问题描述】:当我使用命令java -jar sqltool.jar --rcFile sqltool.rc db_file q.sql
在 HSQLDB 2.2.5 中运行以下脚本时,我收到以下错误消息:
错误信息:
SEVERE Error at 'q3.sql' line 16:
"\xq SELECT "T1"."C1", "T1"."C2" FROM "PUBLIC"."TABLE1" "T1""
Export syntax: "\x table_or_view_name " OR "\x SELECT statement".
(Do not end with ';', since the \x command itself is not SQL).
SEVERE Rolling back SQL transaction.
org.hsqldb.cmdline.SqlTool$SqlToolException
HSQLDB 脚本:
--q.sql
DROP TABLE "PUBLIC"."TABLE1" IF EXISTS;
CREATE TABLE "PUBLIC"."TABLE1" (
"C1" VARCHAR(10),
"C2" VARCHAR(10),
"C3" VARCHAR(10)
);
INSERT INTO "PUBLIC"."TABLE1" ("C1", "C2", "C3") VALUES (',', 'b', 'c');
INSERT INTO "PUBLIC"."TABLE1" ("C1", "C2", "C3") VALUES ('d', 'e', 'f');
* *DSV_COL_DELIM=,
* *DSV_ROW_DELIM=\n
* *DSV_TARGET_FILE=results.csv
\xq SELECT "T1"."C1", "T1"."C2" FROM "PUBLIC"."TABLE1" "T1"
请注意,如果我使用\x
而不是\xq
,上述HSQLDB 脚本将成功运行。但是,\x
命令不会从数据中转义“,
”字符。但是,根据HSQLDB manual,\xq
应该在输入中转义分隔符。
如何将我的 HSQLDB 表导出到 CSV 文件,以便在需要时转义分隔符?
【问题讨论】:
【参考方案1】:正如错误消息所说,它期待“\x something”,而不是“\xq something”。
您应该使用您正在使用的发行版中的实用程序指南。网站上的文档适用于 2.2.6。抱歉,在线文档太超前了,因为 2.2.6 尚未公开发布。
2.2.5 不支持\xq。
【讨论】:
我从 hsqldb.org/support/hsqldb_16.zip 获得了 HSQLDB 2.2.6 的预发布快照,它成功运行了我的脚本。谢谢!以上是关于如何在 HSQLDB 导出命令中启用转义?的主要内容,如果未能解决你的问题,请参考以下文章