需求场景:

data.txt源数据:

[INFO] 2012-12-01 00:01:17 1610 FHR "行号=24. 查看指定计划的钢卷数据. 计划号=121200102."
[INFO] 2012-12-01 00:03:13 1610 FHR "行号=24. 查看指定计划的钢卷数据. 计划号=121200103."
[INFO] 2012-12-01 00:20:21 7362 RICC "IntervalTime=0,RollingTime=0"
[INFO] 2012-12-01 00:20:21 7363 RICC "WRTFMOff:   24.5,   24.8,   24.9,   25.1,   25.3,   25.3,   25.4,   26.5[C]."
[INFO] 2012-12-01 00:20:21 7362 RICC "IntervalTime=0, RollingTime=0, WRTFMOff:fT=24.632685"

拿到这一份源数据后,第一眼我们看到像这种类型的数据就是应该使用sql*loader工具。把该源文件的数据导入到oracle数据库。

那么,我们先来熟悉一下这个工具:
一、sql*loader的概述

很多情况之下,我们的数据需要批量处理传输到库,或者在库之间批量传输数据。其中,常见
的情形是用从事务处理系统提取的数据填充数据仓库,或将数据从实时系统复制到测试开发环境。对
大规模操作而言,使用标准的INSERT语句插入数据并不总是最佳方式,而oracle本身附带了SQL*Loader和Data Pump功能来支持批量操作。通过使用外部表,还可以在不将数据插入数据库的情况下读取数据。
    从体系结构上讲,SQL*Loader进程与其他用户进程类似:它通过服务器进程连接到数据库。
要插入行,可以采用两种技术:常规方式或直接路径读取。常规方式是使用INSERT。SQL*Loader用户进程构造values子句中包含绑定变量的insert语句,然后读取源数据文件,为每一个要插入的行执行
一次insert。此方法使用数据库缓冲区缓存,并生成撤销(undo)和重做数据(redo log),这些insert
语句与其他同类语句相似,通过普通的提交处理实现数据永久化。
    直接路径是避开了database buffer,sql*loader读取源数据文件,并将内容发送到服务器进程。
此后,服务器进程在其PGA中组装表数据中的块,并将它们直接写入数据文件。写操作在表的高水位
线上完成,称为数据保存(data save)。高水位线是表段中的一个标记,其上未写入任何数据:高水
位线上的空间是分配给尚未使用的表的空间。加载完成后,sql*loader移动高水位线,从而包含最新
写入的数据块,并且其他用户都可以立即看见这些数据块内的行。上述操作相当于一个commit命令。
此时不会生成撤销,也可以主动的取消重做日志的生成。所以说,直接路径加载是很快捷的。
二、SQL*Loader直接路径缺点
直接路径也存在以下缺点:
1、执行操作期间,必须删除或禁用引用完整性约束(只能实施unique、primary key、not null约束)。
2、会将针对其他会话的DML锁定表
3、不会激活insert触发器
4、无法为群集表使用

sql*loader体系结构:

三、实际操作演示

好了,这里没办法说得太细节化,相关的知识大家自己补充。

新建一个测试表TEST(我们要把源数据导入这个表):
SQL>conn hr/oracle@testdb

SQL> create table test(
  2  name varchar2(10),
  3  indate varchar2(20),
  4  intime varchar2(20),
  5  num int,
  6  source varchar2(10),
  7  description varchar2(128)
  8  );

准备好data.txt、data_test.ctl(加载所要使用的控制文件,定义数据规则的)
data_test.ctl:

LOAD DATA
INFILE "E:\oracle\exercises\data.txt"
TRUNCATE INTO TABLE TEST
FIELDS TERMINATED BY " " optionally enclosed by '"'
(NAME,INDATE,INTIME,NUM,SOURCE,DESCRIPTION)

sqlldr这个命令就是sql*loader工具,是在$ORACLE_HOME/bin目录下
C:\Documents and Settings\Administrator>sqlldr hr/oracle@testdb  control=E:\oracle\exercises\data_test.ctl  log=E:\oracle\exercises\data_test.log

3 小时前 上传

下载附件(39.43 KB)

查询下结果:

3 小时前 上传

下载附件(39.34 KB)

到此为止,提出的需求已经完成。关于控制文件里面的命令是什么意思,有时间的话下次解释一下或者留点给大家自己去学习吧。希望大家可以相互参与到讨论当中,相互提高自己!

转载于:https://blog.51cto.com/kasonbin/1256220

ORACLE导入TXT文件数据的解决思路相关推荐

  1. 导入 txt 文件数据到 MySQL 表

    导入 txt 文件数据到 MySQL 表 需求:导入数据到 MySQL 表中 操作: 新建一个 .txt 文件 新建一个表 右击表选择导入向导 选择导入类型为文本文件(*.txt) 选择创建的 .tx ...

  2. oracle打开 txt文件,oracle 导入txt文件

    第一次接触Oracle,记录一下导入txt文件的过程. 首先,导入txt文件需要格式上整齐,类似下图: 然后Oracle创建表: create table OUTCLINICAL2DIM( MPI_P ...

  3. mysql 通过load data local infile导入txt文件数据

    如果一次性需要插入大批量数据,使用insert语句插入性能较低 可以使用MySQL数据库提供的load 指令进行数据插入: # 执行load指令将准备好的数据,加载到表结构中 load data lo ...

  4. oracle导入dmp文件数据,dmp文件导入Oracle数据库

    由于项目的需要,接触到dmp文件,并且需要读取dmp文件.而无法直接读取dmp格式文件,目前常用的方法是导入Oracle数据库,然后通过Java程序读取.这里主要说一下我遇到的问题以及解决方法. 相信 ...

  5. python如何导入txt文件-数据从txt文本导入python

    机器学习实战 p21 源代码: def file2matrix(filename): fr = open(filename) numberOfLines = len(fr.readlines())   ...

  6. oracle数据库导入txt,oracle数据库导入TXT文件方法介绍

    客户端连接数据库导入 1. 安装有oracle客户端,配好监听. 2. 以oracle数据库app用户的表user_svc_info为例 CREATE TABLE USER_SVC_INFO( PHO ...

  7. ADF txt文件数据导入table

    创建表 CREATE TABLE ALS_STAFF ( ID NUMBER(3,0), FIRST_NAME VARCHAR2(20 BYTE), LAST_NAME VARCHAR2(30 BYT ...

  8. Pandas 导入excel、csv、txt 文件数据

    Python 数据分析 导入.xlsx 文件 基本导入 指定导入 指定行索引 指定列索引 指定导入行 指定导入列 导入.csv 文件 直接导入 指明分隔符 指明读取行数 指明读取列数 engine 指 ...

  9. [Excel知识技能] Txt文件数据批量导入Excel

    记录(日期: 2022/5/20) 在实际工作中,遇到过将Txt格式的数据导入到Excel中,为此特意记录以下操作过程,便于日后的回顾和学习 需要导入的文本文件如下图所示: Txt文本数据源 Site ...

最新文章

  1. 《人类简史》作者:应对 AI 革命,要打造新的经济、社会和教育体系
  2. 网络推广外包中有哪些不可取行为值得网络推广外包专员警示?
  3. 使用Spring数据和Thymeleaf实现Bootstrap分页
  4. appium 环境搭建(不推荐安装此版本appium,推荐安装appium desktop)
  5. esxi 修改服务器配置失败,R720服务器安装 ESXI 5.5update1后出现XXX错误
  6. 《啊哈!算法》第5章 图的遍历
  7. spss之数据处理(离散化)
  8. arcgis怎么压缩tif文件_PDF文件怎么进行压缩?教你两招!
  9. 用户密码MD5和SHA加密
  10. 10个让你相见恨晚的iOS Swift动画框架!
  11. 神经网络发展历史时间统计表(留存收藏)
  12. 强化学习6——policy gradient的优化( Use temporal causality,Baseline and Critic)
  13. ps去除图片中的文字、图层锁定不能解开问题
  14. elementUI实现table表头展示上、下角标
  15. 文献综述 android,《基于android的手机天气预报系统》的文献综述-文献综述
  16. mysql dump 1449_mysqldump: Got error: 1449
  17. 2020年 IOS 逆向 反编译 注入修改游戏或APP的调用参数新手系列教程——使用theos tweak 注入hook修改游戏执行代码上传动态头像
  18. MMDetection2.17-权重模型转推理模型(pth转onnx)详细步骤及前向推理(Win10、Linux均适用)
  19. RabbitMQ 集群详解部署(一)
  20. 网络编程 —— 了解

热门文章

  1. Java复习二 基本数据类型与变量和常量
  2. Numpy 从数值范围创建数组
  3. Linux下yum方式安装mysql 以及卸载mysql
  4. 03-----数据类型
  5. 【问题排查】fastjson线上排坑记
  6. Python基础(9)水仙花数
  7. HDU 1233 还是畅通工程。
  8. JAVA日期加减运算
  9. C#中as与is的用法
  10. 千里之堤毁于蚁穴------重点项目不能交付之谜(一)泥淖中的验收测试