使用SQL*Loader将CSV文件数据导入ORACLE数据表 LuckySYM 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 (责任编辑:IT) |