2015-05-29 2 views
0

Я использую HSQLDB для связывания существующих текстовых файлов, запускаю SQL на нем для извлечения данных в наборе результатов. Проблема в том, что текстовый файл имеет данные в виде пробела, DBQL DB Resultset возвращает null для них. Напр .: строка текстовых файлов:HSQLDB Resultset - как получить возвращаемое пространство HSQLDB без кавычек как пробел, а не null?

данные1 | данные2 || | Data3

Я ожидаю Resultset, как

data1, data2, нулевой, Data3

HSQLDB документ справ/Chpt5 гласит: «Пустые поля рассматриваются как NULL. Это поля, в которых нет ничего или просто пробелов между разделителями ». Есть ли способ изменить это поведение по умолчанию? не занимать места между сепараторами как Нуль и пространство между сепараторами как пространство?

ответ

1

В соответствии с HSQLDB documentation «Цитированные пустые строки рассматриваются как пустые строки». В вашем случае вы можете изменить существующие текстовые файлы? Если да, то вы могли бы заменить все экземпляры одного или более пробелов между два сепаратором обеспечивает с помощью регулярного выражения (например: \|\s+\|) с цитируемым эквивалентом:

data1|data2|| |data3 

станет

data1|data2||" "|data3 

Это должно позволить HSQLDB чтобы получить эти значения полей, а не устанавливать их в null.

+0

Thanks krautmeyer! Там есть еще одна проблема. Есть некоторые данные в текстовом файле, которые включены в кавычки, например, те, которые могут содержать данные seperators, Ex: Data1 | Data2 | "Da | ta3" |. Поэтому, чтобы читать эти значения, я использую свойство quoted = fasle. поэтому, если я заменю символ пробела на «", он читает пробел как «". – CodeChef

+0

Это делает его более сложным - можете ли вы изменить исходные файлы за два прохода? Во-первых, замените каждую двойную кавычку на экранированную версию ('' ''). Затем сделайте проход, чтобы заменить пробелы эквивалентным кавычками, как и раньше. Если HSQLDB не нравится, вам нужно будет правильно очистить свои данные и указать любые поля, содержащие символ с двойной кавычкой. –

 Смежные вопросы

  • Нет связанных вопросов^_^