Загрузить содержимое текстовых файлов в таблицу sqlite?
У меня есть простые текстовые файлы, которые содержат только обычные тексты.
Мне было интересно, есть ли способ загрузить текстовое содержимое в таблицу в sqlite.
поэтому, возможно, я мог бы создать таблицу myTable (nameOfText TEXT, contents TEXT);
а затем поместите имя текста в первый столбец и содержимое во второй столбец.
Если ввести имя файла трудно, загрузка содержимого в одну таблицу столбцов так же, как штраф.
любое предложение было бы оценено.
спасибо !!
3 ответов
termsql-это инструмент, который может конвертировать текст из файла или вывода программы (stdin) на лету в базу данных sqlite.
termsql -c nameOfText,contents -i input.txt -o myDB.db
Это создаст таблицу с столбцами nameOfText и contents. Для каждой строки ввода.формат txt одна строка будет вставлена в myDB.децибел.
вы не сказали нам о разделителе nameOfText и контекст разделены. От по умолчанию termsql предполагает, что разделителем является пробел. Но Должно ли это быть", " например, тогда вы бы сделайте что-нибудь вроде этого:
termsql -d ',' -c nameOfText,contents -i input.txt -o myDB.db
вы можете получить termsql здесь: https://gitorious.org/termsql https://freecode.com/projects/termsql
Termsql имеет и другие usecases. Инструкции SQL для новой базы данных можно выполнять одной командой. В следующем примере будет создана база данных и возвращен столбец nameOfText в командной строке для всех строк, где столбец contents содержит строку "test".
termsql -d ',' -c nameOfText,contents -i input.txt -o myDB.db "select nameOfText from tbl where contents like '%test'"
скажем, у вас есть текстовый файл.txt формата CSV:
name1,content1
name2,content2
попробуйте выполнить команды ниже, чтобы импортировать данные в тест.txt в таблице
D:\test>sqlite3 test.db
SQLite version 3.6.23
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table myTable(nameOfText TEXT, contents TEXT);
sqlite> .separator ","
sqlite> .import test.txt myTable
sqlite> select * from myTable;
name1,content1
name2,content2
sqlite>
измените разделитель, используемый в текстовом файле, на .сепаратор команда перед импортом данных.
функции readfile
считывает содержимое файла и возвращает это содержимое в виде BLOB. Эта функция доступна при использовании командной строки оболочки. Например:
sqlite> CREATE TABLE files(name TEXT, content TEXT);
sqlite> INSERT INTO files(name,content) VALUES('a.txt',readfile('a.txt'));
документация для этой функции и writefile
находится в http://www.sqlite.org/cli.html.