ORACLE_OCP之SQLLOADER实验 and SQLLODER_EXPRESS

ORACLE_OCP之SQLLOADER实验

  1. 建立一个实验用目录:

    mkdir -p /home/oracle/sqlldr --在ORACLE用户下执行

  2. 在数据库HR用户下创建一个表:

    create table dept(deptno number(5),dname varchar2(15),loc varchar2(15));

  3. 创建数据文件

    vi test.dat
    
    10,"A","CHINA"
    
    11,"B","USA"
    
    12,"C","RUSSIA"
    
    13,"D","INDIA"
    
    14,"E","KOREA"
    
    15,"F","JAPAN"
    
    16,"G","FRANCE"
    
    17,"H","ENGLISH"
    
  4. 创建控制文件

    vi test.ctl
    
    load data
    
    infile 'test.dat' --指定加载的数据文件,可以是单独的文件名/相对路径/(控制文件和加载文件在一起时),也可以带有目录的文件名/绝对路径/ 控制文件和加载的数据文件不在一个目录下
    
    into table dept  
    
    fields terminated by ',' optionally enclosed by '"'
    
    (deptno,dname,loc)
    
  5. 加载数据

    sqlldr hr/hr control=test.ctl log=test.log

  • 如果数据文件中,有列头,那么进行数据加载时,可能会出错,生成一个bad文件,如果跳过,可以指定SKIP。修改数据文件使之无错,如下:
  1. 创建数据文件

    vi test01.dat
    
    deptno,dname,loc
    10,"A","CHINA"
    11,"B","USA"
    12,"C","RUSSIA"
    13,"D","INDIA"
    14,"E","KOREA"
    15,"F","JAPAN"
    16,"G","FRANCE"
    17,"H","ENGLISH"
    
  2. 创建控制文件

    cat test01.ctl
    
    load data
    
    field names all files ignore --指定该配置,可忽略字段头信息
    
    infile 'test01.dat'
    
    into table dept
    
    fields terminated by ',' optionally enclosed by '"'
    
    (deptno,dname,loc)
    
  3. 数据加载

    sqlldr hr/hr control=test01.ctl log=test01.log

总结:
  • 相关参数补充:

    • insert --为缺省方式,在数据装载开始时要求表为空
    • append --在表中追加新记录
    • replace --删除旧记录(用 delete from table 语句),替换成新装载的记录
    • truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录
  • when deptno <> 10 – 当deptno不为10的时候 可以插入

SQLLODER_EXPRESS

  • 在sqlldr目录下创建两个以.dat为后缀名的文本文档

    vi eemp.dat
    1,a,100
    2,b,200
    3,c,300
    
    vi eemp1.dat
    1:a:100
    2:b:200
    3:c:300
    
  • 在hr用户下创建两张表:

    create table eemp(id number,name varchar2(10),salary number);
    create table eemp1(id number,name varchar2(10),salary number);

  • 在sqlldr目录下执行两个命令开始导入

    sqlldr hr/hr TABLE=eemp;
    sqlldr hr/hr TABLE=eemp1;

  • 需要注意的是

    • 命令行中的表名大小写一定要和操作系统上对应的文件名大小写一样,而且文件扩展名必须是.dat
    • 数据文件内的数据分割必须是以逗号做分隔符。
    • 表列必须是标量数据类型(字符,数字或日期时间)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值