2015-02-25 3 views
0

Мне нужно загрузить весь текстовый файл (содержащий только текст ASCII) в базу данных (DB2 Express ed.). Таблица имеет только две колонки: EXAMPLE_TABLE (ID, TEXT). Столбец ID представляет собой PK, с автоматически сгенерированными данными, тогда как текст VARCHAR(50).Текстовый файл, разделенный периодом времени, в db2

Теперь мне нужно использовать утилиту загрузки/импорта, чтобы сохранить каждое предложение в текстовом лице в EXAMPLE_TABLE, то есть у нас есть строка для каждого предложения. Идентификатор строки должен быть сгенерирован автоматически, но это уже указано во время создания таблицы. Утилита импорта должна учитывать период «.» в качестве разделителя (иначе я не знаю, как извлекать предложения).

Как это можно сделать в DB2?

Заранее благодарен!

ответ

1

При использовании файлов с разделителями стандартные утилиты DB2 import и load не имеют возможности указывать терминатор записи строк. Символ LF (или CRLF на Windows) является единственным терминатором записи, который вы можете использовать.

Итак, вам нужно будет предварительно обработать файл (либо заменить каждый период (.) с новой строки или вставить строку после каждого периода), прежде чем вы можете использовать import или load, в результате чего в файле с каждым предложением на отдельной строке.

Вы можете сделать это с tr:

cat file | tr '.' '\n' > file.load 
db2 "import from file.load of del insert into example_table (text)" 

Имейте в виду, что вы, вероятно, также необходимо учитывать пробелы после периода, так что вы не до конца с ведущими пробелами в начале каждого «предложение» в вашей таблице, и вы также можете учесть дополнительные пробелы (т. е. пустые строки между каждым абзацем).