`
hanqunfeng
  • 浏览: 1526323 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle批量导入csv文件

 
阅读更多
数据表:
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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics