你好,游客 登录 注册 搜索
背景:
阅读新闻

使用SQL*Loader将CSV文件数据导入Oracle数据表

[日期:2012-09-12] 来源:Linux社区  作者:LuckySYM [字体: ]

使用SQL*Loader将CSV文件数据导入Oracle数据表

1. 环境条件与操作目标

(1) Oracle中存在一个Employee表,表中包含4个字段:
emp_id   number
emp_name varchar2
emp_date date
dpt_id   number

(2) 一个CSV文件emp.csv, 包含了上述表中的相关数据,字段顺序与上述
   表字段相同。内容如下:

1001,"James","2011/04/08",100
1001,"Tom","2010/10/15",100
1001,"Larry","2009/01/02",101

(3) 任务目标将emp.csv中的数据,使用sql*loader,导入表employee

2. SQL*Loader命令说明

SQL*Loader是随Oracle一起发布和安装的命令行工具,命令名称为sqlldr。
该工具用于将外部文件数据导入ORACLE。

SQL*Loader在运行时,必须指定一个控制文件和一个数据文件,
除了将数据输出到Oracle外,还可以输出其他文件,用以指示运行状态,
包括:
Log File:  日志文件,用于输出运行过程中的消息日志。当运行失败时,
          可据此判断失败原因。
Bad Files: 错误数据行。当数据文件中某一行数据导入失败,这行数据
          将被输出到BadFile中。

当以带有过滤条件方式运行SQL*Loader导入数据(数据过滤条件在控制文件
中指定),SQL*Loader还会根据需要输出以下文件:
Discard Files: 包含被过滤条件废弃的数据记录的文件。

SQL*Loader命令常用参数:> SQLLDR keyword=value [,keyword=value,...]
userid:   用户名/口令,例如scott/tiger@orcl
control:  输入的控制文件名
log:      输出的日志文件名
bad:      输出的错误数据文件名
data:     输入的数据文件名
discard:  输出的废弃数据文件名
errors:   允许的错误数,如果错误记录超过该数目,程序立即退出
slient:   运行过程隐藏消息


3. 导入数据


控制文件(control.ctl)中内容如下:

LOAD DATA
INFILE 'it.csv'
INTO TABLE employee
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(
EMD_ID,
EMP_NAME,
EMD_DATE DATE "YYYY/MM/DD",
DPT_ID
)

执行SQL*Loader:
> sqlldr userid=username/password@orcl control=control.ctl

linux
相关资讯       Oracle数据表 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款