SQL_loader批量上传数据

1.    注释

在工作中,很多时候会遇到如下情况:需要将excel中的数据批量上传到ORACLE表中。如果是小数据量,如几十条至几百条,那么用plsql dev工具,在查询命令后加上for update 然后解锁,把数据复制粘贴进去就可以了。

但如果遇到大数据量几万至几十万时,上述方法就不可行了。

如下介绍如何使用oracle自带的sqlloader上传数据。

2.    SQL_LOADER上传数据

2.1   sql_loader说明

sql*loader是oracle自带程序。需要上传数据的本机只要安装了oracle数据库或客户端就会自动集成该工具。但是不同的版本对控制文件的写法要求有所不同。具体可参见2.3节或者附件控制文件的内容。

2.2   编辑数据文件

要使用sql*loader,其数据文件必须是两种,一种是 *.txt 的文本文件,另一种是 *.csv的文件。例如,需要上传的数据是使用excel编辑的,那么只需要将excel另存为[制表符分割的 txt 文件]或者另存为[逗号分割的csv 文件]即可。如下图:

注意:CSV格式的文件打开后跟excel的样式差不多,但实际存储方式不一样。在磁盘上CSV格式的文件中每个格子中的数据使用逗号分割开存储的。

这样的存储方式很有用,方面后面写控制文件。控制文件在控制读取数据的时候直接以逗号为标记读取数据。其实,plsql dev在导出文件的时候就可选择存储为csv格式。

按照以上方法,数据文件就准备好了。

2.3   编写控制文件

控制文件其实就是SQL_LOADER上传数据时需要运行的脚本,其后缀名为ctl。控制文件写明了数据文件的位置、加载数据的方式、加载到哪个表、如何读取数据等信息。

下面是一段简单、完整的控制文件的截图及解释:

load data
infile 'D:\新建文件夹\存量zzjgdm.csv'
append
into table ZX_QYDJ_CL_ZZJGDM_2017
(
ZZJGDM terminated by ',',
ZCH terminated by ',',
QYMC terminated by ','
)

图注:编写控制文件时用文本文件编写好,修改后缀名为ctl即可。

2.4   SQL_LOADER导入数据

制作好了数据文件和控制文件,接下来就是把数据导入oracle表中。

接下来执行导入命令,如果数据库在本机则可执行:

Sqlldr scott/leedb control=c:\controlfile.ctl data=c:\datafile.csv

如果是远程数据库,则可执行:

Sqlldr scott/leedb@xwdb control=c:\controlfile.ctl data=c:\datafile.csv

Sqlldr scott/leedb@192.168.0.20:1521/xwdb control=c:\controlfile.ctl data=c:\datafile.csv

                                     (远程地址:端口/实例名称)

excel中的数据导入oracle方法的更多相关文章

  1. 使用Python将Excel中的数据导入到MySQL

    使用Python将Excel中的数据导入到MySQL 工具 Python 2.7 xlrd MySQLdb 安装 Python 对于不同的系统安装方式不同,Windows平台有exe安装包,Ubunt ...

  2. 使用openpyxl模块将Excel中的数据导入数据库

    这里将不介绍openpyxl模块的详细操作. 主要就是记录一个使用openpyxl模块将Excel表格的数据导入数据库中的实例. from openpyxl import load_workbook ...

  3. 把excel中的数据导入到Oracle数据库中

    从事工作以来,数据库一直使用oracle,却不知道excel导入oracle,今天看了一篇文章,分享给大家,希望对大家有用. https://jingyan.baidu.com/article/0f5 ...

  4. 用ttBulkCp把excel中的数据导入到timesten数据库中

    最近要做数据预处理,需要用到数据库.而且是以前从来没听说过的TimesTen. 首要目标是要把Excel里的数据,导入到TimesTen数据库中.而TimesTen在win10里用不了,于是我就在虚拟 ...

  5. c#.net Excel中的数据导入到SQL数据库中

    /// <summary>        /// 从Excel 导入学生        /// </summary>        /// <param name=&qu ...

  6. 详解用Navicat工具将Excel中的数据导入Mysql中

    第一步:首先需要准备好有数据的excel: 第二步:选择"文件"->"另存为",保存为"CSV(逗号分隔)(*.csv)",将exce ...

  7. 用JDBC把Excel中的数据导入到Mysql数据库中

    步骤:0.在Mysql数据库中先建好table 1.从Excel表格读数据 2.用JDBC连接Mysql数据库 3.把读出的数据导入到Mysql数据库的相应表中 其中,步骤0的table我是先在Mys ...

  8. 使用navicat for sqlserver 把excel中的数据导入到sqlserver数据库

    以前记得使用excel向mysql中导入过数据,今天使用excel向sqlserver2005导入了数据,在此把做法记录一下 第一步:准备excel数据,在这个excel中有3个sheet,每个she ...

  9. 把excel中的数据导入到数据库

    import.php <?php header("Content-Type:text/html;charset=utf-8"); echo '<html> < ...

随机推荐

  1. HTTP协议系列(2)--顺带离职的一些想法

    一.聊聊离职感悟      来杭州也是将近3个月了,也迎来我的第一次辞职,有可能你会说我傻怎么不拿年终奖,也有可能你会不理解为什么3个月就要辞职:我只能说我是怀揣的梦想来的,我想着进一步的提升,想着成 ...

  2. 强悍的 CSS 扩展语言 -- Sass

    <div class = 'testBorder'> <p> <input/> </p> </div> 假设上面这 3 个 DOM 元素有这 ...

  3. [原译]在mongoose中对Array Schema进行增删改

    原文地址: http://tech-blog.maddyzone.com/node/add-update-delete-object-array-schema-mongoosemongodb 本文为上 ...

  4. ASP.NET Zero--7.控制器加权限

    上次已经实现了菜单权限的配置,达到了不同角色的用户显示不同的菜单.但这里还有BUG,如果你直接访问http://localhost:8019/Mpa/Test这个控制器时,并使用"Defau ...

  5. 前端 PC端兼容性问题总结

    1.如果图片加a标签在IE9-中会有边框 解决方案: img{border:none;} 2.rgba不支持IE8 解决方案:可以用 opacity  eg: opacity:0.7;/*FF chr ...

  6. Javascript中 a.href 和 a.getAttribute('href') 结果不完全一致

    今天无意中发现这个么问题,页面上对所有A标签的href属性为空的自动添加一个链接地址,结果发现if判断条件始终都没生效,莫名其妙. 原来Javascript中 a.href 和 a.getAttrib ...

  7. 【.NET】Linq几样特点

    LinQ 是 .net framework 3.5的技术,对集合的查询和操作十分方便,结合LinQ Provider ,可以更方便操作XML和SQL(或Entity). LinQ有6样常用的特性: 自 ...

  8. GOPS2017全球运维大会深圳站 出席嘉宾盘点!

    去年,GOPS全球运维大会在深圳出发,当时门票提前几周收盘,2017年,承载着运维人的期望,GOPS全球运维大会再次来到了深圳.第六届GOPS2017全球运维大会深圳站(本次)将于2017年4月21日 ...

  9. NoSQL数据建模技术

    原文来自“NoSQL Data Modeling Techniques”,由酷壳网陈皓编译<NoSQL数据建模技术>.这篇文章看完之后,你可能会对NoSQL的数据结构会有些感觉.我的感觉是 ...

  10. CodeForces 710B Optimal Point on a Line

    递推. 先对$a[i]$进行从小到大排序. 然后计算出每个点左边所有点到这个点的距离之和$L[i]$,以及右边每个点到这个点的距离之和$R[i]$. 这两个都可以递推得到. $L\left[ i \r ...