excel表格数据导入数据库Oracle
方法一:
1.创建数据表
CREATE TABLE T_USER
(
ID VARCHAR2(32) primary key,
NAME VARCHAR2(100),
REGISTER_DATE DATE,
REAL_NAME VARCHAR2(32)
);
2.准备数据文件
数据文件可以是单独的,也可以与控制文件合二为一。具体字段可以是定长的,也可以固定分隔符的。这里以最常用的CSV格式、数据文件和控件文件合体为例。
3.编写控制文件(control.txt)
OPTIONS (skip=0,rows=500) //设置忽略行数、提交行数
load data
CHARACTERSET 'UTF8' //如果编码与操作系统默认编码不同,需指明,否则会报奇怪的错误或出现乱码
infile *//*表示要加载的数据包含在控制文件中,否则需要写明文件名
append into table T_USER
fields terminated by ',' optionally enclosed by '"'
TRAILING NULLCOLS//数据只有四列,而要导入五列,不使用这句会报错。
(
virtual_field FILLER,//使用FILLER关键字,跳过无用的第一列。
name,
register_date date 'yyyy-mm-dd',//标识日期格式
real_name nullif(real_name='NULL'),//将NULL字符串转化为null变量
id "sys_guid()"//使用GUID生成主键,还可以使用其他函数
)
BEGINDATA
1,wallimn,2015-07-26,隔壁老王
2,anonymouse,2015-07-27,NULL
4.导入命令
sqlldr userid=scott/tiger control=control.txt
5.特别提示
如果导入时日期格式指定为yyyy-mm-dd hh24:mi:ss,数据文件中,日期格式为2015-01-01,也就是不带时间,是一样可以导入成功的。
如果出现错误,可查看控制文件目录中生成的日志文件,可查明详细错误原因。
方法二:
方法一、使用SQL*Loader
这个是用的较多的方法,前提必须oracle数据中目的表已经存在。大体步骤如下:
1、将excel文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符分隔),这里选择类型为csv(逗号分隔)也行,但是在写后面的control.ctl时要将字段终止符改为','(fields terminated by ','),假设保存到c盘根目录。
2 、如果没有存在的表结构,则创建,假设表为test,有两列为dm,ms。
3、用记事本创建SQL*Loader控制文件,网上说的文件名后缀为ctl,其实我自己发现就用txt后缀也行。比如命名为control.ctl,内容如下:(--后面的为注释,实际不需要)
load data --控制文件标识
infile 'c:\text.txt' --要输入的数据文件名为test.txt
append into table test --向表test中追加记录
fields terminated by X'09' --字段终止于X'09',是一个制表符(TAB)
(dm,ms) --定义列对应顺序
备注:数据导入的方式上例中用的append,有以下几种:insert,为缺省方式,在数据装载开始时要求表为空;append,在表中追加新记录;replace,删除旧记录,替换成新装载的记录;truncate,同replace。
4、在命令行提示符下使用SQL*Loader命令实现数据的输入。
sqlldr userid=system/manager control='c:\control.ctl'
我来举个例子
1.导出地区表的test.csv文件
"01","市区"
"02","柯桥"
"03","钱清"
"04","皋埠"
"05","漓渚"
"06","齐贤"
"08","袍江"
"09","平水"
"12","东浦"
....
2.编辑sqlldr导出控制文件test.ctl内容如下:
load data
infile 'e:\test.csv'
replace into table test
fields terminated by ',' optionally enclosed by '"'
trailing nullcols
(id,name)
3.在cmd中执行:
E:\>sqlldr userid=xxx/yyy@dbxx control=e:\test.ctl log=e:\log.txt bad=e:\bad.txt
SQL*Loader: Release 8.1.7.0.0 - Production on 星期三 7月 20 21:28:06 2005
(c) Copyright 2000 Oracle Corporation. All rights reserved.
达到提交点,逻辑记录计数48
方法二、利用PLSQL Developer
使用PLSQL Developer工具,这个可是大名鼎鼎的Oracle DBA最常使用的工具。
在单个文件不大的情况下(少于100000行),并且目的表结构已经存在的情况下——对于excel而言肯定不会超过了,因为excel文件的最大行为65536—— 可以全选数据COPY ,然后用PLSQL Developer工具。
1 在PLSQL Developer的sql window里输入select * from test for update;
2 按F8执行
3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后COMMIT提交即可。
还有很多第三方工具,Toad,PL/SQL Developer,SQL Navigator等等。
方法三 、使用其它数据转移工具作中转站。
我使用的是Sql Server 2000。
先将excel表导入sqlserver数据库中,然后再从Sql server导入到oracle中。这两部操作都简单,如果不会随便查个帮助就可以了。
这里有两个自己的经验:
一、是注意excel文件的版本和格式要与导入到sql server时的数据源匹配。如果导入到sql server时的数据源选Microsoft Excel 97-2000的话,而excel文件的版本为Micaosoft Excel 5.0/95 工作簿,则有可能出问题。关于如何看Excle文件格式,你打开excel文件,选择另存为,即可看到像Micaosoft Excel 5.0/95 工作簿或者是Microsoft Office Excle 工作簿等等其它的保存类型。
二、就是由Sqlserver导入到oracle中时,记得将在oracle中的表名全部用大写。因为oracle的表名都是大写的,而sql的表可能是大小混写的,所以导入后在oracle里查不到该表,比如这个Products表在oracle里查询就应该写成select * from scott."Products";
原文地址:http://wallimn.iteye.com/blog/2230231
http://www.jb51.net/article/39126.htm
excel表格数据导入数据库Oracle的更多相关文章
- 将Excel中数据导入数据库(三)
上篇文章将Excel中数据导入数据库时,将从Excel读入的数据均转换成了数据库相应字段的类型,其实这是没有必要的,因为对于数据库各种类型的插入,均可以字符串格式插入.比如表WQ_SWMSAR_A字段 ...
- 将Excel中数据导入数据库(二)
在上篇文章中介绍到将Excel中数据导入到数据库中,但上篇文章例子只出现了nvachar类型,且数据量很小.今天碰到将Excel中数据导入数据库中的Excel有6419行,其中每行均有48个字段,有i ...
- 将Excel中数据导入数据库(一)
在工作中经常要将Excel中数据导入数据库,这里介绍一种方法. 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: Excel中数据导入数据库帮助类如下: using System; ...
- Excel表格数据导入MySQL数据库
有时候项目需要将存在表格中的批量数据导入数据库,最近自己正好碰到了,总结一下: 1.将excel表格另存为.csv格式文件,excel本身的.xlsx格式导入时可能会报错,为了避免不必要的格式错误,直 ...
- 用多线程优化Excel表格数据导入校验的接口
公司的需求,当前某个Excel导入功能,流程是:读取Excel数据,传入后台校验每一条数据,判断是否符合导入要求,返回给前端,导入预览展示.(前端等待响应,难点).用户再点击导入按钮,进行异步导入(前 ...
- excel表格数据导入导出
/** * 导出数据到excel表格 * Created by shenjianhua on 2018-12-28 */ package com.luer.comm.excel; import jav ...
- SpringBoot通过Ajax批量将excel中数据导入数据库
Spring Boot通过Ajax上传Excel并将数据批量读取到数据库中 适合场景:需要通过excel表格批量向数据库中导入信息 操作流程 [1]前端上传一个excel表格 [2] 后端接收这个ex ...
- Excel表数据导入数据库表中
***Excel表数据导入到数据库表中 通过数据库表的模板做成‘Excel’表的数据导入到数据库相应的表中(注意:主表 和 从表的关系,要先导‘主表’在导入从表) 过程:通过数据库的导入工具—先导入为 ...
- 将包含经纬度点位信息的Excel表格数据导入到ArcMap中并输出成shapefile
将包含经纬信息的Excel表格数据,导入到ArcMap中并输出成shapefile,再进行后面的操作.使用这种方法可以将每一个包含经纬信息的数据在ArcMap中点出来. 一.准备数据 新建Excel表 ...
随机推荐
- leetcode 001 Two Sun
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- 比较三个 CSS 预处理器:Sass、LESS 和 Stylus(上)
前沿 : 第一次写不够成熟,可能描述有所错误,还请大家修改指正,我会对已完成的文章进行修改. 一.什么是CSS预处理器 CSS预处理器定义了一种新的语言,基本的思想是用一种专门的编程语言,开发者只需要 ...
- jsp fmt标签详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt326 JSTL标签提供了对国际化(I18N)的支持,它可以根据发出请求的客户 ...
- 微软微服务eShopOnContainers示例之EventBusRabbitMq解析与实践
eShopOnContainers eShopOnContainers是微软官方的微服务架构示例,GitHub地址https://github.com/dotnet-architecture/eSho ...
- Prism for Xamarin.Forms
一.使用环境 OS:Win 10 16273 VS:VS2017- 15.3.4 Xamarin:4.6.3.4,nuget:2.4 Android Emulator:Visual Studio fo ...
- 0908期 HTML 样式表属性
1.背景与前景 /*背景色,样式表优先级高*/ background-image:url(路径); /*设置背景图片(默认)*/ background-attachment:fixed; ...
- 探索JSP中的 "9大内置对象!"
1.什么是JSP内置对象? jsp内置对象就是Web容器创建的一组对象,我们都知道Tomcat可以看成是一种Web容器,所以我们可以知道所谓的内置对象Tomcat创建的,使用内置对象时可以不适用new ...
- 没有闲话和grunt.initConfig()
grunt.initConfig()为Gruntfile.js的核心部分,它接收对象作为参数. 对象包含两种类型的属性,一种是单纯的变量,一种是task类型.举个栗子: grunt.initConfi ...
- 结对编程-四则运算生成程序-GUI界面
201421123118 张中结 201421123098 胡丹丹 a.需求分析 这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web,手机上的),成为一个有基本功 ...
- 201521123063 《Java程序设计》 第4周学习总结
1.本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 类设计 一般在设计类的时候,要考虑这些类是否有共性,还要考虑其独特性,使共同的父类拥有这些共性 ...