CSV 逗号分隔值格式文件

1,若要加载的文件不是CSV格式,可以修改数据文件,用分隔符来替换逗号;也可以修改控制文件,将FIELDS TERMINATED BY的值改为实际的分隔符。

eg, 要向scott.bonus表插入数据 **.dat.

1. SMITH,CLEAK,3904

2. ALLEN,"SALER,M",2891

3. WARD,"SALER,""S""",3128

4. KING,PRESIDENT,2523

LOAD DATA

INFILE  **.dat

TRUNCATE INTO TABLE  BONUS

FIELDS TERMINATED BY "," OPTIONALLOY ENCLOSED BY '"'

(ENAME, JOB, SAL)

save as ldr_case2.ctl

运行SQLLDR:

> sqlldr scott/tiger control= ldr_case2.ctl

2,若数据文件没有分隔符,但是定长字符串。 使用position 关键字来指定列的开始和结束位置。 如:

  position(7:15 )从第7个字符开始截止到第15个字符作为ENAME列的列值。

position(*+2:15) *号代表相对偏移量,从上次结束的位置+2的地方开始。

position(*)char(9): 这种方式 只需为第一列指定开始位置,其他列只需要指定列长度即可。

1. LOAD DATA

2. INFILE ldr_case3.dat

3. TRUNCATE INTO TABLE BONUS

4. (

5. ENAME position(1:5),

6. JOB position(7:15),

7. SAL position(17:20)

8.)

SQL> DESC BONUS; //查看表结构

3,若数据文件中的列少于将要导入的表的列。在控制文件中加入 COMM “0” 即可。

4,若数据文件中的列多于将要导入的表的列,

  方式一: 修改数据文件,将多余的数据删除(使用于小数据量)

  方式二: 如1. SMITH  7369  CLERK  800  20

        2. ALLEN  7499  SALESMAN  1600 30

希望导入1、3、4 列而跳过2、5列,

5,提供多个数据文件,要导入同一张表

  指定多个INFILE参数即可。2前提是提供的数据文件中的数据存放格式必须完全相同。

6,同一个数据文件要导入不同的表,使用WHEN关键字。

  需求是将以MGR开头的记录导入MANAGER表,以BON开头的记录导入BONUS表,其他记录存入废弃文件中,

注:控制文件中的WHEN逻辑判断不支持OR关键字,如果判断条件有多个,使用AND连接。

7,数据前N行不想导入。

可以使用文本工具修改数据文件,linux下可以通过tail命令实现。 若不想修改数据文件,则 SKIP参数。

SQL> SQLLDR SCOTT/TIGER CONTROL=LDR_CASE10.CTL SKIP=3 前3行不导入。

若 导入 4到6行, 则

SQL> SQLLDR SCOTT/TIGER CONTROL=LDR_CASE10.CTL SKIP=4 LOAD=6

8,要加载的数据中有换行符,复杂, 要sqlldr指明什么时候才进行换行操作。

eg手工指定换行符, 数据文件中的换行符不是标准的换行标志。而是用户自定义的一个标志字符。这种情况下”

LOAD DATA

INFILE ldr case11.dat

TRUNCATE INTO TABLE manager

FIELDS TERMINATED BY ","

(MGRNO MANAME,JOUB,TRMAK,

REMARK "replace(:remark, '\\n',chr(10))")

理论知识说完,实践下。

首先 cmd-> sqlplus dabook/dabook_localhost

连接dabook,

create table manager;

编辑 testData.csv 文件, 存放在E:\下。

12,Smith,manager,3600
13,Paul ,coder,3000
14,Lynn,tester,2000

编辑control文件:TEST01.CTL

LOAD DATA
INFILE 'E:\testData.csv'
INTO TABLE MANAGER
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
(MGRNO,MNAME,JOB,REMARK)

使用show parameter control_files;命令查看已有的control文件。为了找到control的路径。一般都放在一起比较好吧。

cmd> sqlldr system/D199033 control= E:\APP\DINGQI\ORADATA\TEST\DABOOK\TEST1.CTL 导入数据

在去select 下 ,发现数据就进去了!

PS:贴上我的Oracle安装地址

。  。。

Orcale 数据加载的更多相关文章

  1. AE数据加载

    1. 数据加载问题: 任何系统都离不开数据的加载,下边就AE中几种常用的数据加载做一个列举.以便查阅: 1.加载个人数据库 个人数据库是保存在Access中的数据库.其加载方式有两种:通过名字和通过属 ...

  2. ScrollView嵌套ListView,GridView数据加载不全问题的解决

    我们大家都知道ListView,GridView加载数据项,如果数据项过多时,就会显示滚动条.ScrollView组件里面只能包含一个组件,当ScrollView里面嵌套listView,GridVi ...

  3. python多种格式数据加载、处理与存储

    多种格式数据加载.处理与存储 实际的场景中,我们会在不同的地方遇到各种不同的数据格式(比如大家熟悉的csv与txt,比如网页HTML格式,比如XML格式),我们来一起看看python如何和这些格式的数 ...

  4. flask+sqlite3+echarts3+ajax 异步数据加载

    结构: /www | |-- /static |....|-- jquery-3.1.1.js |....|-- echarts.js(echarts3是单文件!!) | |-- /templates ...

  5. Entity Framework关联查询以及数据加载(延迟加载,预加载)

    数据加载分为延迟加载和预加载 EF的关联实体加载有三种方式:Lazy Loading,Eager Loading,Explicit Loading,其中Lazy Loading和Explicit Lo ...

  6. JQuery插件:遮罩+数据加载中。。。(特点:遮你想遮,罩你想罩)

    在很多项目中都会涉及到数据加载.数据加载有时可能会是2-3秒,为了给一个友好的提示,一般都会给一个[数据加载中...]的提示.今天就做了一个这样的提示框. 先去jQuery官网看看怎么写jQuery插 ...

  7. 如何评估ETL的数据加载时间

    简述如何评估大型ETL数据加载时间. 答:评估一个大型的ETL的数据加载时间是一件很复杂的事情.数据加载分为两类,一类是初次加载,另一类是增量加载. 在数据仓库正式投入使用时,需要进行一次初次加载,而 ...

  8. 浅谈Entity Framework中的数据加载方式

    如果你还没有接触过或者根本不了解什么是Entity Framework,那么请看这里http://www.entityframeworktutorial.net/EntityFramework-Arc ...

  9. 实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)

    实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624 ...

随机推荐

  1. Allure 生成测试报表

    Allure官方文档参考地址:https://docs.qameta.io/allure/#_testng 1.在maven中添加依赖并进行相应的配置: <!-- 实现版本控制 --> & ...

  2. VSCode PHP 开发环境配置 详细教程

    VSCode PHP 开发环境配置 详细教程 这篇文章主要介绍了VScode+PHPstudy配置PHP开发环境的步骤,整理了官方以及优秀第三方的内容,对于学习和工作有一定借鉴意义. 配置过程 第一步 ...

  3. ABP开发框架中分页查询排序的实现处理

    在ABP开发框架中应用服务层ApplicationService类中,都会提供常见的一些如GetAll.Get.Create.Update.Delete等的标准处理接口,而由于在Application ...

  4. c++学习笔记6(结构化程序设计)

    结构化程序设计 c语言使用结构化程序设计: 程序=数据结构+算法 程序有全局变量以及众多相互调用的函数组成 算法以函数的形式实现,用于对数据结构进行操作 结构化程序设计不足

  5. 从源码分析 XtraBackup 的备份原理

    MySQL物理备份工具,常用的有两个:MySQL Enterprise Backup 和 XtraBackup. 前者常用于MySQL企业版,后者常用于MySQL社区版.Percona Server ...

  6. 大爽Python入门教程 3-3 循环:`for`、`while`

    大爽Python入门公开课教案 点击查看教程总目录 for循环 可迭代对象iterable 不同于其他语言. python的for循环只能用于遍历 可迭代对象iterable 的项. 即只支持以下语法 ...

  7. 菜鸡的Java笔记 第十八 - java 代码块

    代码块  code block                content (内容)        在程序结构之中使用"{}"定义的内容就称为代码块,但是会根据其声明的位置以及关 ...

  8. linux 系统ssh超时设置

    1.修改client端的etc/ssh/ssh_config添加以下:(在没有权限改server配置的情形下) ServerAliveInterval 60 #client每隔60秒发送一次请求给se ...

  9. 【Lua】实现代码执行覆盖率统计工具

    一.如何评估测试过程的测试情况? 很多时候完成功能测试后就会发布上线,甚至交叉和回归都没有足够的时间去执行,然后通过线上的补丁对遗漏的问题进行修复.如果可以在发布前了解本次测试过程所覆盖代码执行的比例 ...

  10. ROS机器人开发实践1->SSH远程登录要点记录

    1.有线网卡 设置 找到有线网络,点击设置,修改其中的IPv4的地址和子网掩码. 1 //地址 2 192.168.xxx.xxx 3 //子网掩码 4 255.255.255.0 点击应用 2.配置 ...