sqlldr--将OS中非oracle数据导入oracle(一)

本文介绍了如何使用SQLLDR工具将操作系统中的非Oracle数据,例如/home/oracle/ext/shop1.data,导入到Oracle数据库的scott.shop1表中。详细讲解了控制文件的设置,包括字段分隔符、定界符等,并展示了创建目录对象和授权的过程,以及最终执行SQLLDR导入的命令。
摘要由CSDN通过智能技术生成

将/home/oracle/ext/shop1.data导入到scott.shop1表中

 

[oracle@localhost ext]$ cat /home/oracle/ext/shop1.data
1,apple,10
2,banana,20
3,book,25
4,pen,5

 

在os下,直接执行sqlldr可以查看帮助信息

[oracle@localhost ext]$ sqlldr

 

sqlldr的几种文件
控制文件(control) :与oracle的controlfile的地位一样,相当于大脑。
日志文件(log):记录sqlldr的详细过程。
坏文件(bad):记录拒绝的数据,如输入格式无效,插入记录无效。
丢失文件(discard): 包含不符合控制文件中指定任一记录选择标准而被过滤掉的记录。

 

------------------------------------------------------------------------------------------------

 

控制文件格式
LOAD DATA
INFILE shop1.data              --INFILE可以指定多个、*表示数据就在文件中、表必须事先存在
APPEND                         --除了append(附加)、truncate(先truncate再insert)、INSERT(已有数据会报错,默认)、REPLACE(先delete再insert)
INTO TABLE SCOTT.SHOP1         --导入的目的表要事先存在
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'    --这里设定分隔符、可选的定界符

                                                       --另外TRAILING NULLCOLS也在这行使用
(ID,NAME,VALUE)                --与表中列名一致
                               --BEGINDATA,表示以下为要加载的数据,和infile *连用
                               --1,apple,10
                               --2,banana,20
                               --3,book,25
                               --4,pen,5
 
--terminated by whitespace 指定空格为分隔符
--terminated by x'09'  指定tab为分隔符
--这里的默认单位是char(255),如果表中字段长度大于255就报错

--当数据中有x,x,     缺少最后个字段值时,可以使用TRAILING NULLCOLS功能

 

------------------------------------------------------------------------------------------------

 

创建目录对象(directory objects)
CREATE DIRECTORY SHOP_DIR AS '/home/oracle/ext';

 

目录对象的权限授予
SQL> grant read on directory shop_dir to scott;

Grant succeeded.

SQL> grant write on directory shop_dir to scott;

Grant succeeded.

 

------------------------------------------------------------------------------------------------

 

sqlldr语句开始导入

[oracle@localhost ext]$ sqlldr userid=scott/oracle  control=shop1.ctl log=shop1.log

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值