Android Sqlite 導入CSV文件 .

http://blog.csdn.net/johnnycode/article/details/7413111sql

今天遇到 Oracle 導出的12萬條CSV格式數據導入 Android Sqlite 中 ,整個流程記錄下,分享一下,由於處於考慮數據保密問題,下列數據都爲 Demo 數據。shell

一、首先須要將 CSV  文件處理下字符集的問題 ,衆所周知 sqlite 默認字符集 UTF-8 ,涉及中文的地方若是不設置那麼導入sqlite的數據將會亂碼。數據庫

右鍵選擇 CSV 文件,打開方式爲 記事本 ,將會看到以下數據oracle

 

須要將第一行列去除,而後將分號 」 同時去掉,最終結果爲編碼

 

下面這步最重要,將文件另存爲,最下方 編碼 選擇 UTF-8 ,而後另存到 C 盤根目錄便可。spa

 

二、由於PC沒有安裝 sqlite ,因此這裏將 sqlite 操做交給 Android 手機來處理。.net

首先將 數據壓入 Android 手機 sd 卡中code

 

  1. C:\Users\John>adb push c:/employee.csv /mnt/sdcard  
  2. 0 KB/s (89 bytes in 0.191s)  
C:\Users\John>adb push c:/employee.csv /mnt/sdcard
0 KB/s (89 bytes in 0.191s)

 

 

使用 adb 命令鏈接手機,進入 sd 卡目錄sqlite

  1. C:\Users\John>adb shell  
  2. $ cd /mnt/sdcard/  
  3. cd /mnt/sdcard/  
C:\Users\John>adb shell
$ cd /mnt/sdcard/
cd /mnt/sdcard/


使用 sqlite3 建立 mydata.db 數據庫,如不指定路徑,那麼 sqlite3 將會默認將數據庫文件建立運行 sqlite3 的目錄中,建表語句能夠從 oracle 中複製便可。建表完畢,可使用 .ta 命令查看新建表是否成功。blog

  1. $ sqlite3 mydata.db  
  2. sqlite3 mydata.db  
  3. SQLite version 3.6.22  
  4. Enter ".help" for instructions  
  5. sqlite> create table EMPLOYEE(xh VARCHAR2(60),xm VARCHAR2(100),bm VARCHAR2(100),dz VARCHAR2(200));  
  6. create table EMPLOYEE(xh VARCHAR2(60),xm VARCHAR2(100),bm VARCHAR2(100),dz VARCHAR2(200));  
  7. sqlite> .ta  
  8. .ta  
  9. EMPLOYEE  
$ sqlite3 mydata.db
sqlite3 mydata.db
SQLite version 3.6.22
Enter ".help" for instructions
sqlite> create table EMPLOYEE(xh VARCHAR2(60),xm VARCHAR2(100),bm VARCHAR2(100),dz VARCHAR2(200));
create table EMPLOYEE(xh VARCHAR2(60),xm VARCHAR2(100),bm VARCHAR2(100),dz VARCHAR2(200));
sqlite> .ta
.ta
EMPLOYEE


三、導入 csv 數據文件到新建的 employee 表中 ,須要作點準備工做。由於 csv 默認數據分割符爲逗號 「,」  而 sqlite 默認數據分割符爲 「|」 ,先用 .show 命令確認下,而後再改,固然也能夠先改 而後再用 .show 來查看,運行 sqlite 命令必定要注意他自身命令都是要 點 開頭滴。

 

  1. sqlite> .show  
  2. .show  
  3.      echo: off  
  4.   explain: off  
  5.   headers: off  
  6.      mode: list  
  7. nullvalue: ""  
  8.    output: stdout  
  9. separator: "|"  
  10.     width:  
  11. sqlite> .separator ","  
  12. .separator ","  
sqlite> .show
.show
     echo: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: "|"
    width:
sqlite> .separator ","
.separator ","

 

四、上述準備工做作好以後,就能夠正式導入數據。

.import  //導入命令 

 /mnt/sdcard/employee.csv  //csv文件路徑

employee //csv文件導入指定表

 

  1. sqlite> .import /mnt/sdcard/employee.csv employee  
  2. .import /mnt/sdcard/employee.csv employee  
sqlite> .import /mnt/sdcard/employee.csv employee
.import /mnt/sdcard/employee.csv employee

展現結果,OK 沒啥問題。

  1. sqlite> select * from employee;  
  2. select * from employee;  
  3. "XH","XM","BM","DZ"  
  4. "1","王軒宇","研發部","山東青島"  
  5. "2","王雲汐","運營部","山東青島"  
sqlite> select * from employee;
select * from employee;
"XH","XM","BM","DZ"
"1","王軒宇","研發部","山東青島"
"2","王雲汐","運營部","山東青島"

 

參考文章:

相關文章
相關標籤/搜索