欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记一次从TXT文件导入数据到Oracle数据库的经历

程序员文章站 2022-07-13 08:04:48
...

因为业务需要,计划从别库迁移几亿笔业务数据作为基础数据使用,双方约定好采用如下格式的.txt文档进行数据交互。

所有字段的数据将按照不超过该字段指定的长度提供。数据各字段间用|键分割。各条记录间用回车换行分割。

.txt文档导入Oracle库的时候,不能在导入的过程中修改数据,也不能增加字段(入库时间之类的),所以先创建一张临时表,用于从TXT接收数据。

CREATE TABLE "TEMP_IMPORT" (
  -- 字段部分省略
);

写导.txt文件的脚本
其中:
truncate可以根据自己需要更改成append
trailing nullcols用于处理空字段
如果存在编码问题,可以加上characterset 编码类型处理
这个文件以.ctl为扩展名

load data
infile 'Test.txt'
truncate into table TEMP_IMPORT 
fields terminated by "|"
trailing nullcols
(
FIELD1,
FIELD2,
FIELD3
)

执行

sqlldr userid=数据库用户名/密码 control=ctl文件名.ctl log=日志存放路径/日志文件名.log

数据进入库中临时表之后,表之间的数据迁移根据数量灵活配置
比如使用insert into select

insert into IMPORT ( 
					FIELD1,
					FIELD2,
					FIELD3,
					INSERT_TIME
					)
 select 
	a.FIELD1,
	a.FIELD2,
	a.FIELD3,
	sysdate
 from TEMP_IMPORT a ;
相关标签: oracle 数据库