sqlloader外部表
admin
2023-05-06 10:41:26
0

创建目录

 

先在系统下创建

$ 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.data
360,Jane,Janus,ST_CLERK,121,17-MAY-2001,3000,0,50,jjanus
361,Mark,Jasper,SA_REP,145,17-MAY-2001,8000,.1,80,mjasper
362,Brenda,Starr,AD_ASST,200,17-MAY-2001,5500,0,10,bstarr
363,Alex,Alda,AC_MGR,145,17-MAY-2001,9000,.15,80,aalda
401,Jesse,Cromwell,HR_REP,203,17-MAY-2001,7000,0,40,jcromwel
402,Abby,Applegate,IT_PROG,103,17-MAY-2001,9000,.2,60,aapplega
403,Carol,Cousins,AD_VP,100,17-MAY-2001,27000,.3,90,ccousins
404,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 a8
col c3 for a10
col c4 for a10
col c10 for a10
selectc1,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.ctl
load data
infile'prod_my.data'
append
into table scott.ldr
fields 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:代表可以将空行干掉

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


相关内容

热门资讯

菲律宾总统称未下达逮捕德拉罗萨... 新华社马尼拉5月13日电(记者赵晨捷 李萌)据菲律宾媒体报道,菲总统马科斯13日称未下达逮捕参议员德...
时隔九年再度来京,特朗普有何诉... ◆5月12日,特朗普登上“空军一号”前对着镜头挥手告别。(图源:美联社)文/何平编辑/漆菲5月13日...
硬科技管控,中美关系的新压舱石 特朗普此次访华,英伟达CEO黄仁勋随行的消息提振美股市场,凸显芯片与人工智能已成为中美关系的核心议题...
报告:今年一季度AI原生APP... 中国青年网北京5月12日电(记者 高蕾)近日,第三方智能数据服务商QuestMobile发布了《中国...
七大新品发布!国轩高科第15届... 央广网合肥5月13日消息(记者徐鹏)5月16日至17日,电池龙头企业国轩高科将在合肥举办第15届全球...
百度伐谋2.0发布,李彦宏:能... 5月13日举办的Create2026百度AI开发者大会开幕式上,自我演化决策智能体百度伐谋升级至2....
泰顶级豪门曝性侵丑闻!哥哥侵犯... 泰国最有影响力的巨头之一Singha集团(胜狮集团),这两天爆出性侵丑闻。集团第四代成员,环保活动家...
什么信号?多地要求干部带头缴纳... 多地要求干部带头缴纳物业费。最近一段时间,物业费成了社会关注的焦点。原因竟然是多地密集出台文件,号召...
“这不是威胁而是绝佳机遇”,默... 【文/观察者网 张菁娟】“当下挑战之所以如此巨大,是因为我们长期以来为自己制造了太多问题,而这些问题...
老杜盟友半路杀出,“闪电夺权”... 最近两天,马尼拉的政治温度直接爆表。5月11日上午,菲律宾众议院以255票赞成、26票反对、9票弃权...