数据表:
CREATE TABLE "CARDV2"."TBL_VERSION"
("ID" NUMBER(20,0) NOT NULL ENABLE,
"VERSION" VARCHAR2(500 BYTE),
"CREATEDATE" DATE NOT NULL ENABLE,
"NUM" NUMBER(10,0),
"CITY" VARCHAR2(20 BYTE),
"DES" VARCHAR2(100 BYTE),
CONSTRAINT "TBL_VERSION_PK" PRIMARY KEY ("ID")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
TABLESPACE "USER_DATA" ENABLE
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
TABLESPACE "USER_DATA" ;
控制文件:
TBL_VERSION.ctl
load
append into table CARDV2.TBL_VERSION
fields terminated by ","
trailing nullcols
(
ID "cardv2.SEQ_VERSION.nextval",
VERSION char(500),
CREATEDATE "sysdate",
NUM,
CITY,
DES
)
说明:
fields terminated by "," :字段间以逗号分隔
trailing nullcols :如要导入源文件此列内容为空,在导入到数据库表时,此列内容就是null
ID "cardv2.SEQ_VERSION.nextval" : 此例用序列值替换
CREATEDATE "sysdate" : 此例用sysdata替换
字段格式为:字段名称 字段类型(可以不写) “字段值”(引号扩起来)
比如:CREATEDATE "sysdate" ==》CREATEDATE date "sysdate",
如果数据文件中已经明确给出日期的值,比如2015-01-01,则可以修改控制文件CREATEDATE date "yyyy-mm-dd",此时date类型必须明确给出,
如果不想使用类型,也可以通过函数的方式实现,CREATEDATE "to_date(:createdate,'yyyy-mm-dd')"
csv数据文件:
TBL_VERSION.data
1,1.0.2.30.45#2.36.10.25#1.25.36.85,sysdate,0,BEIJING,desc1
1,2.0.2.30.45#2.36.10.25#1.25.36.85,sysdate,,,desc2
1,3.0.2.30.45#2.36.10.25#1.25.36.85,sysdate,1,BEIJING,desc3
1,4.0.2.30.45#2.36.10.25#1.25.36.85,sysdate,0,,desc4
1,5.0.2.30.45#2.36.10.25#1.25.36.85,sysdate,0,SHANGHAI,desc5
1,6.0.2.30.45#2.36.10.25#1.25.36.85,sysdate,0,,desc6
1,7.0.2.30.45#2.36.10.25#1.25.36.85,sysdate,0,,desc7
1,8.0.2.30.45#2.36.10.25#1.25.36.85,sysdate,0,,desc8
导入命令:
sqlldr cardv2/password@oracle control=./TBL_VERSION.ctl data=./TBL_VERSION.data log=./TBL_VERSION.log bad=./TBL_VERSION.bad errors=1000
参数说明:
control - 控制文件
log - 记录的日志文件
bad - 坏数据文件,记录错误的未加载数据
data - 数据文件
errors - 允许的错误记录数,超过则终止任务 (默认50)
相关参数说明可参考:http://dbua.iteye.com/blog/1570018
另,Oracle 导出导入数据参考:
http://www.cnblogs.com/muliang/archive/2013/08/04/3237216.html
补充:
1.导入文件中如果包含中文,可能会出现乱码问题,需要在环境变量中配置字符集:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
2.数据文件也可以写在控制文件中
TBL_VERSION.ctl
load data
infile "/home/oracle/TBL_VERSION.data"
append into table CARDV2.TBL_VERSION
fields terminated by ","
trailing nullcols
(
ID "cardv2.SEQ_VERSION.nextval",
VERSION char(500),
CREATEDATE "sysdate",
NUM,
CITY,
DES
)
sqlldr cardv2/misspell@oracle control=./TBL_VERSION.ctl log=./TBL_VERSION.log bad=./TBL_VERSION.bad errors=1000
相关推荐
Oracle大数据量导入 博文链接:https://abe.iteye.com/blog/1054515
Oracle导入CSV格式数据
imp方式批量导入dmp文件。oracle数据库bat脚本。需要配置数据库的链接信息和dmp路径信息。
Oracle导出成csv格式后显示乱码的解决方法,自己总结的
csv 格式文件导出数据,数据导入csv文件
oracle 使用sqlplus导入大sql文件,需熟悉linux命令,批量导入sql文件以及导入乱码解决方案
oracle sqlldr多文件批量导入
可以通过对存储了大量记录的txt文件进行拆分处理形成数组,进而实现批量导入数据到数据库。
imp方式批量oracle数据库bat脚本,bat文件中有标明配置数据库的链接信息和.dmp路径信息
图片批量导入数据库(这里可以死mysql、或者oracle,只需把驱动换掉即可) 没有界面,指定目录即可,例如:d:下的photo下有许多图片,直接把D:\pthoto,路径放进既可
Linux环境下使用sqlplus工具将oracle中的数据导入到elasticsearch中。只需要在es_bulk_tool.properties配置sql即可实现数据的批量导入。在elasticsearch6中测试通过。shell脚本需要使用sqlplus。
向oracle中批量导入导出数据表,通过命令行窗口进行操作,简单易行,一看就会!
oracle数据库导入导出DMP文件操作
使用toad将csv数据导入oracle
批量从oracle数据库中导入导出照片等图片,简单修改可用于其他数据库
批量导入文本文件在Oracle数据库操作中经常遇见,今天给大家介绍一种通过sqlldr批处理实现的方法,有需要的朋友们可以参考借鉴,下面来一起看看。
自动读取oracle数据并导出为csv文件。可以通过windows计划任务实现定时自动导出。
主要介绍了Oracle SQLPlus导出数据到csv文件,需要的朋友可以参考下
oracle导入dmp文件之前要做的工作