在日常工作中,我們經(jīng)常需要用SQLLDR導(dǎo)入數(shù)據(jù),而實際情況是我們很多表中的受理字段或部分鍵值是通過SEQUENCE來實現(xiàn)的。那么如何在使用SQLLDR中應(yīng)用sequence呢。
本文通過一個DEMO來示例一下。
J r X k5P6H o.G K @0
SQL> create table test
1y+v b!| ^5e L _0D02 (ITPUB個人空間 v6c'J0q G;[ t J ] X
3 recoid number(14),
4V(Y ? W0y+C04 area_id char(3), ITPUB個人空間 K K3p b e Q
5 area_name varchar2(20),
l P-b"u @ Y m Z:f n06 bill_month number(6),ITPUB個人空間 C"k M R:y R9L/}#A*^ T l U
7 fee number(10,2)
q a L s x-b P-n ~08 );
表已創(chuàng)建。ITPUB個人空間 w i } @ l.l Y4@8i
ITPUB個人空間 M |0F8N:} [,~9h7Y
SQL> create sequence test_seq start with 1 increment by 1 order;
序列已創(chuàng)建。
SQL>
I e Q w H;_#T8G0先做好數(shù)據(jù)文件:test.txtITPUB個人空間2U { U n(H(n M
530,HZ,200501,100.01ITPUB個人空間'B V8e c!D:A
530,HZ,200502,800.23ITPUB個人空間 W l1o/N D y
531,JN,200501,5000.81
T!J(v x v8K u A V u z0531,JN,200502,5360.00ITPUB個人空間5F4~&^ _0F:x
532,QD,200501,20670.32ITPUB個人空間 ^ i @ C;C n \5F,|
532,QD,200502,22000.08
)a4Z u/C e0533,ZB,200501,3050.56ITPUB個人空間 o.{ X7f u'Q
533,ZB,200502,3108.14
大家注意到了吧,數(shù)據(jù)文件中比表結(jié)構(gòu)里少了一列!而這一列,我們計劃用sequence來實現(xiàn)
下面是控制文件的內(nèi)容:test.ctl
load data ITPUB個人空間"l i q.l k ` j&k T4G
infile 'e:test.txt'
;D&[ t4e0p u v;Q ~4f P0append into table test
*l6h f%p)T @-I8b(G9^0fields terminated by "," optionally enclosed by '.'ITPUB個人空間 f c Y e$~'E"s O
(recoid sequence(1,1),ITPUB個人空間-n o d m1\
area_id,
;w B5{+c.N R&H0area_name,
.q4^ q5q u.t9t0bill_month,
u s-x I `*o0fee)
ITPUB個人空間 ? w \ z*i$t
因為序列是剛剛建好的,所以我們從1開始,步長也為1
下面測試一下:ITPUB個人空間 } o r5\ p
SQL> select * from test;
未選定行
SQL>
在CMD模式下,用SQLLDR按照上面的控制文件,將上面的數(shù)據(jù)文件導(dǎo)入:
_ a | U7z _'X%V0E:>sqlldr userid=study/study control=test.ctl
SQL*Loader: Release 10.2.0.1.0 - Production on 星期六 6月 17 09:51:10 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
達到提交點 - 邏輯記錄計數(shù) 7ITPUB個人空間 f!` r9v/L A a
達到提交點 - 邏輯記錄計數(shù) 8
下面返回數(shù)據(jù)庫看看,數(shù)據(jù)是否象我們預(yù)料的那樣進去了!
f2x Z7E*y)]7Z#U-z P0SQL> select * from test;
RECOID ARE AREA_NAME BILL_MONTH FEE
4K @3z @:G0---------- --- -------------------- ---------- ----------ITPUB個人空間*e j u#a O n o y X
1 530 HZ 200501 100.01ITPUB個人空間&]6N d h Z E+t,q p e
2 530 HZ 200502 800.23
{'h v B0C#Z4u3D03 531 JN 200501 5000.81ITPUB個人空間 R i-^ o D P9V m
4 531 JN 200502 5360
3l X3{ N;R ] n%w05 532 QD 200501 20670.32ITPUB個人空間 y1C7i \*d F/^
6 532 QD 200502 22000.08ITPUB個人空間 c z p%X6G.F!R
7 533 ZB 200501 3050.56ITPUB個人空間.x n!? | @ @
8 533 ZB 200502 3108.14
已選擇8行。
SQL>
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
