Android Sqlite 导入CSV文件 .
http://blog.csdn.net/johnnycode/article/details/7413111
今天遇到 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)
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/
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
- .ta
- 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
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 ","
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
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","王云汐","运营部","山东青岛"
sqlite> select * from employee;
select * from employee;
"XH","XM","BM","DZ"
"1","王轩宇","研发部","山东青岛"
"2","王云汐","运营部","山东青岛"
参考文章:
Android Sqlite 导入CSV文件 .的更多相关文章
- ACCESS导入CSV文件出现乱码解决办法
在ACCESS或Excel中导入CSV文件时常常出现乱码,这是因为简体中文版的windows操作系统及其应用软件默认都是ANSI/GBK编码,而导入的文件使用的编码与操作系统默认的编码不相符.出现这种 ...
- C# 将List中的数据导入csv文件中
//http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数 ...
- oracle导入csv文件
oracle导入csv文件: 1.建好对应的表和字段: 2.新建test.ctl文件,用记事本编辑写入: load data infile 'e:\TB_KC_SERV.csv' --修改对应的文件路 ...
- python导入csv文件时,出现SyntaxError
背景 np.loadtxt()用于从文本加载数据. 文本文件中的每一行必须含有相同的数据. *** loadtxt(fname, dtype=<class 'float'>, commen ...
- R: 导入 csv 文件,导出到csv文件,;绘图后导出为图片、pdf等
################################################### 问题:导入 csv 文件 如何从csv文件中导入数据,?参数怎么设置?常用参数模板是啥? 解决方 ...
- python导入csv文件出现SyntaxError问题分析
python导入csv文件出现SyntaxError问题分析 先简单描述下碰到的题目,要求是写出2个print的结果 可以看到,a指向了一个列表list对象,在Python中,这样的赋值语句,其实内部 ...
- neo4j导入csv文件
neo4j导入csv文件 关于neo4j的安装 官网和网上博客提供了n中安装的方法,这里不再赘述: 普通安装: https://cloud.tencent.com/developer/article/ ...
- Oracle数据库导入csv文件(sqlldr命令行)
1.说明 Oracle数据库导入csv文件, 当csv文件较小时, 可以使用数据库管理工具, 比如DBevaer导入到数据库, 当csv文件很大时, 可以使用Oracle提供的sqlldr命令行工具, ...
- 解决Gephi导入csv文件时提示“边表格需要一个包含节点标号‘源’和‘目标’列” 问题的两个方案
1.将csv文件在Excel中打开,并重新保存为csv. 2.将csv文件导入到sqlite,使用sqlite作为数据来源. 标准格式如下
随机推荐
- 如何卸载eclipse中的ADT
卸载ADT的方法,方法如下: 1.选择 Help > Install New Software: 2.在"Details" 面板中, 点击"What is alre ...
- Swift的字符串String是值类型
根据<The Swift Programming Language>中文版基于Xcode6.1的文章描述: Swift的 String 类型是值类型.如果创建了新的字符串,那么当其进行常量 ...
- java设计模式—Adapter模式
1.核心意图: 将一个类的接口转换成客户希望的另外一个接口,从而使得原本由于接口不兼容而不能一起工作的类可以一起工作. 该模式的目标是通过一个代理(这里是Adapter),在原来的类(Adap ...
- MyEclipse 下用link 方式安装插件
N年之前,也是Java出身,后来转DBA,Java 就忘的差不多了. 最近计划好好研究下Python,还是选用MyEclipse 这个IDE了,多年没敲代码,很多东西都忘记了,做点笔记,备用. M ...
- ubuntu12.04 安装 chrome
1.下载deb包 2. sudo apt-get remove google-chrome-stable sudo dpkg -i google-chrome-stable_current_amd64 ...
- DNS(三)DNS SEC(域名系统安全扩展)
工作需要今天了解了下DNS SEC,现把相关内容整理如下: 一.DNS SEC 简介 域名系统安全扩展(英语:Domain Name System Security Extensions,缩写为DNS ...
- 【原】Storm配置
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
- zabbix监控域名带宽
代码地址:https://github.com/Ma-Jing/python/blob/master/ngxv2_traffic_daemon.py READ.md里有使用说明! #!/usr/bin ...
- ado.dataset
DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖与数据库的独立数据集合.所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是 ...
- Windows下ffmpeg的完美编译
纠结了好几天,终于搞定了,小结一下. 1.下载ffmpeg源码,官网 2.编译环境Msys的安装配置,http://blog.csdn.net/jszj/article/details/4028716 ...