Oracle SQL*Loader学习例子

  • 例子所需材料
    • 测试表
    • 数据文件(.csv或.dat等格式,我们将使用.csv)
    • control文件
  • 创建测试表
    假设我们有一张员工表 EMP
create table EMP( EMPNO NUMBER(4) not null,ENAME VARCHAR2(10),JOB VARCHAR2(9),MGR NUMBER(4),HIREDATE DATE,SAL NUMBER(7,2),COMM NUMBER(7,DEPTNO NUMBER(2) )
empno,ename,job,mgr,sal,comm,deptno,hiredate
2342,Tom,sr mag,8987,9090,10,25,12-Nov-99
2333,Jerry,advanced,9089,10000,26,12-Oct-99
OPTIONS (skip=1)              --1
LOAD DATA INFILE 'case.csv' --2 REPLACE --3 INTO TABLE emp --4 fields terminated by ',' --5 optionally enclosed by '"' --5 (empno INTEGER EXTERNAL,--6 ename CHAR "UPPER(:ename)",--7 job CHAR,mgr INTEGER EXTERNAL,sal DECIMAL EXTERNAL,comm DECIMAL EXTERNAL,deptno INTEGER EXTERNAL,hiredate INTEGER EXTERNAL) --8
  • Control文件标注解释

    1. 跳过第一行,即empno,hiredate
    2. 指定data file
    3. 表示load数据前先删除表中已有的全部数据,如果不想删除,要在原有表的基础上增加数据,则将REPLACE改为APPEND
    4. 指定要插入数据的表
    5. 指定字段是由逗号分隔开的,但也有可能是双引号
    6. INTEGER EXTERNAL表示数据文件中的empno必须是INTEGER类型,EXTERNAL不能省略
    7. CHAR "UPPER(:ename)"表示数据文件中的enameCHAR 类型,并且插入到数据库自动将小写的ename转成大写,注意UPPER函数双括号不能省略
  • 执行方法
    打开case.ctl文件目录下打开cmd,输入
    >sqlldr username/password control=case.ctl

相关文章

数据库版本:11.2.0.4 RAC(1)问题现象从EM里面可以看到,在23号早上8:45~8:55时,数据库等待会话暴增...
(一)问题背景最近在对一个大约200万行数据的表查看执行计划时,发现存在异常,理论上应该返回100多万...
(一)删除备份--DELETE命令用于删除RMAN备份记录及相应的物理文件。当使用RMAN执行备份操作时,会在RM...
(1)DRA介绍 数据恢复顾问(Data Recovery Advise)是一个诊断和修复数据库的工具,DRA能够修复数据文...
RMAN(Recovery Manager)是Oracle恢复管理器的简称,是集数据库备份(backup)、修复(restore)和恢复...
(1)备份对象 可以使用RMAN进行的备份对象如下: --整个数据库:备份所有的数据文件和控制文件; --数...