博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqlloader外部表
阅读量:6409 次
发布时间:2019-06-23

本文共 3189 字,大约阅读时间需要 10 分钟。

创建目录

 

先在系统下创建

$ cd /home/oracle$ mkdir dir$ cd dir$ pwd

 

再在sqlplus里创建,oracle知道这个目录

SQL> createdirectory dir as '/home/oracle/dir';

 

最后授权

SQL> grant all ondirectory dir to public;

 

 

 

 

创建数据源文件

$ cd dir

$ vi prod_my.data360,Jane,Janus,ST_CLERK,121,17-MAY-2001,3000,0,50,jjanus361,Mark,Jasper,SA_REP,145,17-MAY-2001,8000,.1,80,mjasper362,Brenda,Starr,AD_ASST,200,17-MAY-2001,5500,0,10,bstarr363,Alex,Alda,AC_MGR,145,17-MAY-2001,9000,.15,80,aalda401,Jesse,Cromwell,HR_REP,203,17-MAY-2001,7000,0,40,jcromwel402,Abby,Applegate,IT_PROG,103,17-MAY-2001,9000,.2,60,aapplega403,Carol,Cousins,AD_VP,100,17-MAY-2001,27000,.3,90,ccousins404,John,Richardson,AC_ACCOUNT,205,17-MAY-2001,5000,0,110,jrichard

 

查看

$ cat prod_my.data

 

 

 

 

 

创建外部表external

CREATE TABLEscott.prod_my(c1 number(5),c2 varchar2(20),c3 varchar2(20),c4 varchar2(30),c5 number(5),c6 date,c7 number(8,3),c8 number(5,2),c9 number(5,2),c10 varchar2(30))  ORGANIZATION EXTERNAL (TYPE ORACLE_LOADERDEFAULT DIRECTORY dir                         ACCESS PARAMETERS(FIELDS TERMINATED BY ","                                           OPTIONALLY ENCLOSED BY '"'                                           MISSING FIELD VALUES ARE NULL)                         LOCATION('prod_my.data'));

 

解释

    FIELDS TERMINATED BY","    代表列与列之间用 ","单引号分割

    OPTIONALLY ENCLOSED BY"" 代表列值是一句话用"")双引号引起来

    MISSING FIELD VALUES ARENULL 代表(,,)逗号与逗号之间可以是空值

 

 

 

 

查询外部表

col c2 for a8col c3 for a10col c4 for a10col c10 for a10selectc1,c2,c3,c5,c6,c7,c8,c9 from scott.prod_my;        C1 C2       C3                 C5 C6                C7         C8         C9---------- ------------------ ---------- --------- ---------- ---------- ----------       360 Jane     Janus             121 17-MAY-01       3000          0         50       361 Mark     Jasper            145 17-MAY-01       8000         .1         80       362 Brenda   Starr             200 17-MAY-01       5500          0         10       363 Alex     Alda              145 17-MAY-01       9000        .15         80       401 Jesse    Cromwell          203 17-MAY-01       7000          0         40       402 Abby     Applegate         103 17-MAY-01       9000         .2         60       403 Carol    Cousins           100 17-MAY-01      27000         .3         90       404 John     Richardson        205 17-MAY-01       5000          0        110

 

select* from scott.prod_my; 查看全部信息

 

 

 

 

                                      然后将外部表导入到数据库中

 

先创建实体的表

CREATE TABLEscott.ldr(c1 number(5),c2 varchar2(20),c3 varchar2(20),c4 varchar2(30),c5 number(5),c6 date,c7 number(8,3),c8 number(5,2),c9 number(5,2),c10 varchar2(30));

 

 

 

 

再创建sqlloader控制文件

$ cd dir$ vi ldr.ctlload datainfile'prod_my.data'appendinto table scott.ldrfields terminated by','optionally enclosedby '"'TRAILING NULLCOLS(c1,c2,c3,c4,c5,c6,c7,c8,c9,c10)

 

开始导入

/u01/app/oracle/product/11gr2/db_1/bin

[oracle@HE3bin]$ ./sqlldr scott/tiger control='/home/oracle/sqlloader/ldr.ctl'log='/home/oracle/sqlloader/ldr.log'

 

 

 

第一步先问文件的位置查处后,修改 infile/home/oracle/dir/prod_my.data

第二步再创建实体的表建立后输入表名 into table scott.ldr

第三步infile 'prod_my.data'下面,加入一个参数append

第四步增加一行TRAILING NULLCOLS

注意:最后不要加【 ; 】分号结束,否则会报错

 

解释

append:代表如果表里有数据可以继续添加

TRAILINGNULLCOLS:代表可以将空行干掉

                  (由于回车产生,也就是空行)

转载于:https://www.cnblogs.com/suifu/p/5823102.html

你可能感兴趣的文章
框架学习的4种境界
查看>>
多VLAN Flex Connect 模式配置手册-By Eric
查看>>
Eclipse常用设置
查看>>
用php编写Nagios插件
查看>>
烂泥:Wordpress添加PHP测试页到网站根目录
查看>>
参数传递 可变长参数函数
查看>>
Stopwatch计时器、秒表 C#
查看>>
HDU-1532-Drainage Ditches
查看>>
6)图[3]拓扑排序算法
查看>>
Day01
查看>>
eclipse中svn的各种状态图标详解
查看>>
SG仿真常用模块
查看>>
[LeetCode] 4Sum
查看>>
sap 常用表
查看>>
责任链与装饰者模式(基本介绍)【设计模式1】
查看>>
Service
查看>>
Codeforces #380 Subordinates(贪心 构造)
查看>>
C# 一个最简单的GET,返回网页源码
查看>>
结对项目--黄金点游戏(邓乐&曾亮)
查看>>
Hdu 1269 强连通判定
查看>>