如何把excel数据导入数据库
这里介绍2种把excel数据导入oracle数据库的方法。
1. 在excel中生成sql语句。
1)在数据列的右侧,第一行的任何位置输入="insert into table(xx,yyy..) values('"&A2&"', '"&B2&"'….);"
注意:
- 整个sql语句用双引号套着。
- values值中使用 "&A2&" 来引用A列的第二行数据,再外面的单引号是因为values中的值(varchar型)需要单引号。
2)写完一行后往下拖,自动生成其他行的sql。
3)把这些sql copy到pl/sql dev工具中执行。
这种方法适合数据量不太大,且只含有varchar(或者说转入数据库中都为varchar类型字段)这种简单的数据类型的数据。对于含有日期类型的要注意,如果excel格式中有日期类型的,使用这种方法引用出来的值是个浮点数。需要首先把日期格式转换成文本格式。再写sql语句,它才能引用正确的日期格式的值。insert into user_test(seq, msisdn,user_name,dt,comment1,comment2) values('1','13597093898','张三42',to_date('2013/2/8 20:00:01','yyyy/mm/dd HH24:mi:ss'),'yyyy','yyyyy');

但存在以下情况不建议用这种方法了。
1. 对于数据量很大,几十万,上百万的数据。
2. 如果数据库表存在由序列生成的列。
3. 存在日期格式列的excel。——我没有找到很方便的直接把日期格式转为文本格式的方法(如直接转换成文本,它会显示成浮点),因此存在日期格式的excel列不建议采用这种方法。
当然第二点,还是可以通过其他方法解决的,就是写触发器。
在写insert语句插入的列不包含序列的列,写触发器,当表进行insert之前生成序列号插入。
假设数据库表如下
create table user_test
(
seq number(10) primary key,
msisdn varchar2(11) not null,
user_name varchar2(50) not null,
dt date,
comment1 varchar2(50),
comment2 varchar2(50)
);
create sequence user_test_seq
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
insert变成这样写:
insert into user_test(msisdn,user_name,dt,comment1,comment2) values('','张三42',to_date('2013/2/8 20:00:01','yyyy/mm/dd HH24:mi:ss'),'yyyy','yyyyy');
触发器:
CREATE OR REPLACE TRIGGER my_trigger BEFORE INSERT ON user_test FOR EACH ROW WHEN (new.seq is null) BEGIN SELECT user_test_seq.nextval INTO :new.seq FROM DUAL; END my_trigger;
其中:new.seq是指新列中的seq字段。
为更好的解决这些问题, 下面介绍第二种方法。
2. 写loader
1) 把excel中的数据另存为.csv文件,字段逗号分隔。假设保存为gov.csv
2 )写ctl文件:
gov.ctl
LOAD DATA INFILE 'gov.csv' APPEND INTO TABLE user_test FIELDS TERMINATED BY ',' trailing nullcols //下面列先后顺序同文件中数据字段的顺序。 ( seq "user_test_seq.nextval", MSISDN, user_name, DT date "yyyy/mm/dd HH24:mi", comment1 , comment2 )
3) 写par文件, 假设名为test.par,其内容为:
userid=用户/密码 control=./gov.ctl log=./t.log bad=./t.bad skip=1 //跳过第一行标题 rows=10000 //每n行commit一次
4)sqlldr parfile=test.par
在我的服务器上,导入百多万的数据应该是一分钟之内的事。
如何把excel数据导入数据库的更多相关文章
- 使用python将excel数据导入数据库
使用python将excel数据导入数据库 因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接 ...
- [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...
- C#将Excel数据导入数据库(MySQL或Sql Server)
最近一直很忙,很久没写博客了.今天给大家讲解一下如何用C#将Excel数据导入Excel,同时在文章最后附上如何用sqlserver和mysql工具导入数据. 导入过程大致分为两步: 1.将excel ...
- Excel数据导入数据库
maven依赖 <!--excel相关依赖--> <dependency> <groupId>org.apache.poi</groupId> < ...
- 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!
引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...
- PHPExcel将Excel数据导入数据库
<?php //PHPExcel读取导入Excel数据到数据库(2003,2007通用)使用方法: //先用excel2array()方法将excel表中的数据存储到数组,在从遍历二维数组将数据 ...
- 将Excel数据导入数据库
Excel如下,这页工作表名叫“线路” 数据库表如下 using System; using System.Collections.Generic; using System.Linq; using ...
- ASP.NET Excel数据导入数据库
<identity impersonate="true"/> 是指模拟IIS身份验证 導入錯誤時可刪除 protected void btnImport_Click(o ...
- 利用poi,jxl将Excel数据导入数据库
需求:‘需要将本地的Excel中的数据经过验证之后导入数据库,在导入数据库之前在页面上展示出来 思路:将Excel导入存到session里面 去判断有没有不合法数据 如果有阻止提交 工具类: imp ...
随机推荐
- PS 制作复印件及盖章效果
对要处理的部分选定 1.执行 滤镜--杂色--添加杂色 2.执行 滤镜--模糊--高斯模糊 3.ctrl+L 执行 色阶 调整为 满意的效果 4.最后添加想要的颜色 图像--调整--渐变映射 关键 ...
- js浮点数计算问题 + 金额大写转换
一 js浮点数计算问题解决方案: 1.使用 NumberObject.toFixed(num) 方法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 2.较精度计算浮点数 ...
- SVN服务器搭建和使用(一)(转)
SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上 ...
- 新一代IDE Light Table开源:让编程工作更简单
近日,Light Table项目创始人Chris Granger在其博客上宣布Light Table开源,将代码全部托管在GitHub上,遵循GNU开源许可.与此同时,还发布了0.6版本,该版本添加了 ...
- [转] 关于linux下通过shell命令(自动)修改用户密码
关于linux下通过shell命令(自动)修改用户密码 2012-04-23 18:47:39 分类: 原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer 本文章总结了如何手动.自 ...
- workerman 的回调函数
接下来,记录一下workerman 的回调函数 <?php /** * Created by PhpStorm. * User: zeopean * Date: 2016-08-26 * Tim ...
- 统计学习方法 AdaBoost
提升方法的基本思路 在概率近似正确(probably approximately correct,PAC)学习的框架中, 一个概念(一个类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,那 ...
- 网站加载css/js/img等静态文件失败
网站加载css/js/img等静态文件失败,报网站http服务器内部500错误.而服务器中静态文件存在且权限正常. 从浏览器中直接访问文件,出来乱码.这种问题原因在于iis中该网站mime配置报错,不 ...
- 【jQuery】: 定时刷新页面
<%@page import="qflag.ucstar.seatmonitor.manager.SeatMonitorManager"%><%@ page la ...
- OpenWRT连接OPENVPN的教程
这是相当基本没有任何web界面,只是几个命令如何运行OpenWRT的 OpenVPN的例子. OpenWRT的设置更复杂,所以这个教程仅供爱好者和经验的用户使用参考. 本教程假定您有OpenWRT的安 ...