今天遇到 Oracle 导出的12万条CSV格式数据导入 Android Sqlite 中 ,整个流程记录下,分享一下,因为处于考虑数据保密问题,下列数据都为 Demo 数据。

1、首先需要将 CSV  文件处理下字符集的问题 ,众所周知 sqlite 默认字符集 UTF-8 ,涉及中文的地方如果不设置那么导入sqlite的数据将会乱码。

右键选择 CSV 文件,打开方式为 记事本 ,将会看到如下数据

需要将第一行列去除,然后将分号 ” 同时去掉,最终结果为

下面这步最重要,将文件另存为,最下方 编码 选择 UTF-8 ,然后另存到 C 盘根目录即可。

2、因为PC没有安装 sqlite ,所以这里将 sqlite 操作交给 Android 手机来处理。

首先将 数据压入 Android 手机 sd 卡中

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

使用 adb 命令连接手机,进入 sd 卡目录

C:\Users\John>adb shell
$ cd /mnt/sdcard/
cd /mnt/sdcard/

使用 sqlite3 创建 mydata.db 数据库,如不指定路径,那么 sqlite3 将会默认将数据库文件创建运行 sqlite3 的目录中,建表语句可以从 oracle 中复制即可。建表完毕,可以使用 .ta 命令查看新建表是否成功。
$ 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
EMPLOYEE

3、导入 csv 数据文件到新建的 employee 表中 ,需要做点准备工作。因为 csv 默认数据分割符为逗号 “,”  而 sqlite 默认数据分割符为 “|” ,先用 .show 命令确认下,然后再改,当然也可以先改 然后再用 .show 来查看,运行 sqlite 命令一定要注意他自身命令都是要 点 开头滴。
sqlite> .show
.show
     echo: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: "|"
    width:
sqlite> .separator ","
.separator ","

4、上述准备工作做好之后,就可以正式导入数据。

.import  //导入命令

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

employee //csv文件导入指定表

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

展示结果,OK 没啥问题。

sqlite> select * from employee;
select * from employee;
"XH","XM","BM","DZ"
"1","王轩宇","研发部","山东青岛"
"2","王云汐","运营部","山东青岛"

参考文章:

http://charlescui.iteye.com/blog/304971

文章参考:http://blog.csdn.net/johnnycode/article/details/7413111# 1. 从PL/SQL 中查询你要的数据,然后导出成 CSV 格式 文件 ; 也可以使用脚本进行导出 CSV 文件 ,具体如下: --set colsep ' || '; set echo off; set feedback off; --禁止显示最后一行的计数反馈信息 set 原文地址:http://www. sqlite .org/ sqlite .html SQLite 库包含一个名字叫做 sqlite 3的命令行,它可以让用户手工输入并执行面向 SQLite 数据库的SQL命令。本文档提供一个样使用 sqlite 3的简要说明。 启动 sqlite 3程序,仅仅需要敲入带... csv 文件 太多,很难做数据分析,可以下载sqllite到本地,将数据 导入 到sqllite中并做数据分析。下载地址:https://www. sqlite .org/download.html 3.1 点击sqllite3.exe 文件 3.2 新建一个db数据库 3.3 制定 导入 的规整 3.4 导入 csv 文件 到数据库中 billing. csv 分析的 csv 文件 名称 billing 对应的数据库表名称... SQLite 是一种轻量级的小型数据库,虽然比较小,但是功能相对比较完善,一些常见的数据库基本功能也具有,在现在的嵌入式系统中使用该数据库的比较多,因为它占用系统资源很少。 一、 sqlite 数据库简介 1)    轻量级-占用资源少 2)    独立性-不依赖其他软件 3)    隔离性-所有信息都在一个 文件 里面 4)    跨平台- android 和ios都用的是 sqlite 我使用了the docs中稍加修改的示例类将这个非常基本的脚本组合在一起;它只需将整个表导出到 CSV 文件 :import sqlite 3import csv , codecs, cStringIOclass UnicodeWriter:"""A CSV writer which will write rows to CSV file "f",which is encoded in the given ... CSV 全称 Comma Separated values,是一种用来存储数据的纯文本 文件 格式,通常用于电子表格或数据库软件。用Excel或者Numbers都可以导出 CSV 格式的数据。 CSV 是一种简单的数据 文件 交换方式,体积小、操作占用内存小、 生成速度快、行数无限制。在一般情况下比Excel 更为简单方便, 导出 文件 是首选。 CSV 的基本规则:1.开头是不留空,以行为单位。2.可含或不含列名,含列... 一,AS开发app用,所用的数据库有限制,必须使用较小的 SQLite (MySql和Sql Server想想就不显示)   但是该数据库并不需要我们单独下载,安装的SDK中已经有了,在C:\ Android SDK\platform-tools目录下     最下面一个exe 文件 就是,双击可以打开dos界面进行编写 将上述讲的 SQLite 的目录(C:\ Android SDK\platfor... 尝试以下代码,FileReader file = new FileReader(fileName);BufferedReader buffer = new BufferedReader(file);String line = "";String tableName ="TABLE_NAME";String columns = "_id, name, dt1, dt2, dt3";String st... 通过FileWriter和BufferedWriter将 SQLite 数据表导出到 csv 格式 文件 的简单方法如下:public void ExportTo CSV (Cursor c, String fileName) { int rowCount = 0; int colCount = 0; FileWriter fw; BufferedWriter bfw;