我有簡單的文本文件,只包含普通文本。將文本文件中的內容加載到sqlite表中?
我想知道是否有辦法將文本內容加載到sqlite表中。所以也許我可以創建表myTable(nameOfText TEXT,contents TEXT);
然後將文本的名稱放入第一列並將內容放入第二列。
如果放入文件的名稱很難,將內容加載到一個列表中也是一樣好。
任何建議,將不勝感激。
謝謝!
我有簡單的文本文件,只包含普通文本。將文本文件中的內容加載到sqlite表中?
我想知道是否有辦法將文本內容加載到sqlite表中。所以也許我可以創建表myTable(nameOfText TEXT,contents TEXT);
然後將文本的名稱放入第一列並將內容放入第二列。
如果放入文件的名稱很難,將內容加載到一個列表中也是一樣好。
任何建議,將不勝感激。
謝謝!
termsql是一種工具,可以將文件或程序輸出(stdin)的文本轉換爲sqlite數據庫。
termsql -c nameOfText,contents -i input.txt -o myDB.db
這將創建一個列nameOfText和內容的表。對於input.txt中的每一行 ,一行將被插入到myDB.db中。
您沒有告訴我們有關分隔符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語句。 以下示例將創建數據庫,並在命令行上爲內容列包含字符串'test'的所有行返回nameOfText列。
termsql -d ',' -c nameOfText,contents -i input.txt -o myDB.db "select nameOfText from tbl where contents like '%test'"
鏈接被破壞 - 似乎可以從[這裏](https:// github。com/tobimensch/termsql)。雖然我不明白爲什麼這樣做比創建表格更可取。 .import ...'如下所述,然後以腳本'sqlite3 myDB.db「的形式運行」.read to_table.sql「' – JohnSG 2016-04-06 19:41:46
假設你有一個CSV格式的文件的text.txt:
name1,content1
name2,content2
嘗試下面的命令中的test.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>
變化使用的分隔您的文本文件與.separator命令,然後再導入數據。
'.separator「,'' 沒有工作 – 2017-03-30 12:38:38
函數readfile
讀取文件的內容並將該內容作爲BLOB返回。使用命令行shell時可以使用此功能。例如:
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。
請注意,readfile(X)和writefile(X,Y)函數是擴展函數,沒有內置到核心SQLite庫中。 – 2017-07-17 19:47:25
文本文件有什麼格式? – 2013-03-10 10:30:21