溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

sqlloader外部表

發(fā)布時(shí)間:2020-07-20 02:35:44 來源:網(wǎng)絡(luò) 閱讀:549 作者:dbapower 欄目:關(guān)系型數(shù)據(jù)庫

創(chuàng)建目錄

 

先在系統(tǒng)下創(chuàng)建

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

 

再在sqlplus里創(chuàng)建,oracle知道這個(gè)目錄

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

 

最后授權(quán)

SQL> grant all ondirectory dir to public;

 

 

 

 

創(chuàng)建數(shù)據(jù)源文件

$ 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

 

 

 

 

 

創(chuàng)建外部表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; 查看全部信息

 

 

 

 

                                      然后將外部表導(dǎo)入到數(shù)據(jù)庫中

 

先創(chuàng)建實(shí)體的表

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)
);

 

 

 

 

再創(chuàng)建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
)

 

開始導(dǎo)入

/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

第二步再創(chuàng)建實(shí)體的表建立后輸入表名 into table scott.ldr

第三步infile 'prod_my.data'下面,加入一個(gè)參數(shù)append

第四步增加一行TRAILING NULLCOLS,

注意:最后不要加【 ; 】分號結(jié)束,否則會報(bào)錯

 

解釋

append:代表如果表里有數(shù)據(jù)可以繼續(xù)添加

TRAILINGNULLCOLS:代表可以將空行干掉

                  (由于回車產(chǎn)生,也就是空行)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI