Как включить экранирование в команде экспорта HSQLDB? - PullRequest
1 голос
/ 17 ноября 2011

Когда я запускаю следующий скрипт в HSQLDB 2.2.5 с помощью команды java -jar sqltool.jar --rcFile sqltool.rc db_file q.sql, я получаю следующее сообщение об ошибке:

Сообщение об ошибке:

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 script:

--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"

Обратите внимание, что приведенный выше скрипт HSQLDB успешно выполняется, если я использую \x вместо \xq.Но команда \x не экранирует символ "," из данных.Однако, согласно руководству HSQLDB , \xq должен избегать разделителей при вводе.

Как я могу экспортировать мою таблицу HSQLDB в файл CSV, который экранирует разделители при необходимости?

1 Ответ

1 голос
/ 17 ноября 2011

Как говорится в сообщении об ошибке, оно ожидает "\ x что-то", а не "\ xq что-то".

Вам следует использовать Руководство по утилитам из используемого вами дистрибутива. Документы на веб-сайте предназначены для 2.2.6. Я прошу прощения, что онлайн-документы слишком далеко впереди, так как 2.2.6 не был выпущен публично.

2.2.5 не поддерживает \ xq.

...