999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用SQL*Loader快速導(dǎo)入Oracle 10g數(shù)據(jù)表

2009-04-23 10:03:58李俊超
新媒體研究 2009年6期

[摘要]SQL*Loader是Oracle的高速批量數(shù)據(jù)加載工具,它具有速度快、對(duì)Oracle數(shù)據(jù)庫(kù)的控制功能強(qiáng)等優(yōu)點(diǎn)。介紹如何利用SQL*Loader快速導(dǎo)入數(shù)據(jù)的方法,以實(shí)例的形式演示執(zhí)行過(guò)程,并結(jié)合實(shí)例對(duì)一些參數(shù)做說(shuō)明。

[關(guān)鍵詞]SQL*Loader Oracle SQL

中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0320035-01

SQL*LOADER是ORACLE的數(shù)據(jù)加載工具,通常用來(lái)將操作系統(tǒng)文件遷移到ORACLE數(shù)據(jù)庫(kù)中。傳統(tǒng)的導(dǎo)入Oracle數(shù)據(jù)庫(kù)的方法是使用import命令導(dǎo)入數(shù)據(jù),這種導(dǎo)入方式命令簡(jiǎn)單,但是速度比較慢,如果導(dǎo)入100M左右的數(shù)據(jù)大約需要半個(gè)多小時(shí)。使用SQL*Loader(SQLLDR)可以快速的導(dǎo)入大量數(shù)據(jù),100M左右的數(shù)據(jù)幾秒鐘就可以加載完。

SQL*Loader從控制文件導(dǎo)入數(shù)據(jù)到數(shù)據(jù)庫(kù)中,功能包括:從定界文件裝數(shù)據(jù),從固定長(zhǎng)度的文本文件裝數(shù)據(jù),從二進(jìn)制文件裝數(shù)據(jù),在輸入文件中過(guò)濾數(shù)據(jù)等。SQL*Loader使用的數(shù)據(jù)類型包括:Char:該char和數(shù)據(jù)庫(kù)中的char類型不同,它包括數(shù)據(jù)庫(kù)中的char、varchar、CLOB等類型;Date:時(shí)間類型;Interger external:定義整數(shù)值;Decimal external:定義包括小數(shù)點(diǎn)的數(shù)值。

要使用SQLLDR,需要有一個(gè)控制文件,控制文件是以*.ctl為后綴的,Oracle SQL*Loader 使用控制文件來(lái)裝載數(shù)據(jù)。控制文件其起的作用就是建立數(shù)據(jù)文件與Oralce數(shù)據(jù)表字段之間的一一對(duì)應(yīng)關(guān)系。簡(jiǎn)單的說(shuō),把數(shù)據(jù)文件中的某個(gè)內(nèi)容放在Oracle數(shù)據(jù)表中的那個(gè)字段上,這就是控制文件所起的主要作用。控制文件中包含輸入數(shù)據(jù)的類型和格式以及在數(shù)據(jù)表中的順序,在制作數(shù)據(jù)文件的時(shí)候,需要注意原有數(shù)據(jù)表的限制。也就是說(shuō),數(shù)據(jù)文件中的記錄必須符合數(shù)據(jù)表的一些約束條件,否則,不符合條件的數(shù)據(jù)將無(wú)法被導(dǎo)入。如需要考慮數(shù)據(jù)類型是否相符、字段長(zhǎng)度有沒(méi)有超過(guò)限制、有沒(méi)有違反主鍵、外鍵的約束等等。只有符合這些約束的記錄,才能夠被成功的導(dǎo)入。否則的話,數(shù)據(jù)將無(wú)法被成功裝載。下面將用一個(gè)例子建立一個(gè)簡(jiǎn)單的控制文件,并對(duì)相關(guān)指令進(jìn)行解釋便于理解。

(1)LOAD DATA

(2)INFILE*

(3)into table Assign

(4)replace

(5)fields terminated by ','

(6)(id,

name,

old date 'dd/mm/yyyy')

(7)begindata

(8)1,jim,13/3/1982

(9)2,Lucy,11/10/1979

LOAD DATA:告訴SQLLDR加載數(shù)據(jù)。

INFILE*:告訴SQLLDR要加載的數(shù)據(jù)包含在控制文件本身中,如第6-8行所示。

Into table Assign:告訴SQLLDR要把數(shù)據(jù)加載到哪個(gè)表中。

Replace:如何去加載數(shù)據(jù)。有如下的指令:insert、append、truncate或replace。要執(zhí)行insert,所要加載的數(shù)據(jù)表就要求為空。如果表中已有記錄,可以使用append向表中增加記錄。如果想替換表中的記錄可以使用replace或truncate。replace使用的是傳統(tǒng)的delete語(yǔ)句,如果要加載的表中已經(jīng)包含很多記錄,這個(gè)操作可能執(zhí)行的很慢。Truncate則不同,它使用truncate SQL命令,通常會(huì)更快的執(zhí)行,因?yàn)樗槐匚锢淼膭h除每一行。

fields terminated by',':告訴SQLLDR數(shù)據(jù)的形式應(yīng)該是用逗號(hào)分隔的值。

(id,name,old):這是所要加載的列,這些列告訴SQLLDR加載數(shù)據(jù)的順序和數(shù)據(jù)類型。

Begindate:表明已經(jīng)完成對(duì)輸入數(shù)據(jù)的描述,后面的行就是要加載到Assign表中的具體數(shù)據(jù)。

每個(gè)加載都會(huì)生存一個(gè)日志文件。SQL*Loader日志文件指定裝載操作的細(xì)節(jié),日志文件會(huì)告訴我們關(guān)于加載的很多方面,從中可以看到我們所用的選項(xiàng)(默認(rèn)值或非默認(rèn)值);可以看到讀取了多少記錄,加載了多少記錄等。這個(gè)日志文件對(duì)于驗(yàn)證加載是否成功至關(guān)重要,另外對(duì)于診斷錯(cuò)誤也很有意義,如果所加載的數(shù)據(jù)導(dǎo)致SQL錯(cuò)誤,這些錯(cuò)誤就會(huì)記錄在這個(gè)日志文件中。這個(gè)日志文件是以表名為名稱的.log文件,例如前面舉例的assign表,它的日志文件為assign.log.日志文件里面介紹了關(guān)于加載的很多方面,從中可以看到讀取了多少記錄,加載了多少記錄,加載控制文件用了多長(zhǎng)時(shí)間等等。日志文件對(duì)于驗(yàn)證加載是否成功很重要,另外對(duì)于診斷錯(cuò)誤也很有意義。由于日志文件里寫(xiě)得很詳細(xì),這里就不再具體解釋了。

使用SQLLDR需要注意一個(gè)問(wèn)題:字段長(zhǎng)度。SQLLDR默認(rèn)的使用CHAR(255),即默認(rèn)的輸入字段長(zhǎng)度為255字符。如果你要導(dǎo)入的表中的字段比這要長(zhǎng),就會(huì)接收到一個(gè)錯(cuò)誤消息:

Record N:RejectedError on table X,column C.

Field in data file exceeds maximum length

解決此問(wèn)題的方法就是在相應(yīng)的字段后面加上CHAR(N),N為要指定的長(zhǎng)度。

還有一個(gè)需要注意的問(wèn)題就是如何加載日期。加載日期方面經(jīng)常導(dǎo)致出錯(cuò)。如果要加載日期需要在控制文件中使用DATE數(shù)據(jù)類型,并指定要使用的日期格式。這個(gè)日期格式與數(shù)據(jù)庫(kù)中TO_CHAR和TO_DATE中使用的日期格式是一樣的。例如上例中指定的日期格式:dd/mm/yyyy.只要在控制文件中應(yīng)用日期格式并且指定關(guān)鍵字DATE,SQLLDR就會(huì)自動(dòng)完成日期的轉(zhuǎn)換。

通過(guò)以上簡(jiǎn)單介紹我們不僅了解了SQL*Loader的優(yōu)點(diǎn),而且學(xué)習(xí)了利用SQL*Loader導(dǎo)入數(shù)據(jù)的方法。當(dāng)然這只是一個(gè)初步了解,如果讀者想了解更加詳細(xì)的內(nèi)容,請(qǐng)參考Oracle Utilities手冊(cè),里面有關(guān)于SQLLDR的詳細(xì)使用方法和各個(gè)參數(shù)的解釋。

參考文獻(xiàn):

[1]蘇金國(guó)、王小振等,Oracle 9i&10g編程藝術(shù),人民郵電出版社,2006,10.

[2]Thomas Kyte,Expert Oracle Database Architecture 9i and 10g Programming Techniques and Solutions,Posts & Telecom Press,2006.

[3]許珂、盧泉、張國(guó)強(qiáng),Oracle數(shù)據(jù)庫(kù)基礎(chǔ),清華大學(xué)出版社,2007,5.

作者簡(jiǎn)介:

李俊超,黨員,湖北人,現(xiàn)就讀太原理工大學(xué)研究生學(xué)院,研究方向?yàn)閿?shù)據(jù)通信與計(jì)算機(jī)網(wǎng)絡(luò)。

主站蜘蛛池模板: 91一级片| 亚洲中文字幕日产无码2021| 欧美视频二区| 色有码无码视频| 亚洲午夜福利精品无码不卡 | 亚洲系列无码专区偷窥无码| 亚洲欧美成人影院| 精品视频一区二区三区在线播| 久久性视频| 国产原创演绎剧情有字幕的| 高清久久精品亚洲日韩Av| 1级黄色毛片| 久久精品最新免费国产成人| 国产主播喷水| 亚洲无码免费黄色网址| 少妇人妻无码首页| 一本综合久久| 丁香综合在线| 精品视频在线一区| 国产精品3p视频| 亚洲国产欧美自拍| 成人年鲁鲁在线观看视频| 亚洲三级片在线看| 欧美成人二区| 国产福利一区在线| 亚洲精选高清无码| 色综合a怡红院怡红院首页| 色首页AV在线| 日韩精品毛片人妻AV不卡| 日韩美女福利视频| 一本久道久久综合多人| 欧美成人精品在线| www.狠狠| 欧美中文字幕在线二区| 911亚洲精品| 特级精品毛片免费观看| 国产福利不卡视频| 天天操精品| 免费高清毛片| 在线观看无码av免费不卡网站| 亚洲成人高清无码| 日韩av无码DVD| 在线观看亚洲精品福利片| 中国毛片网| 永久在线精品免费视频观看| 毛片视频网| 色窝窝免费一区二区三区| 欧美日韩在线亚洲国产人| 日本在线欧美在线| 九九视频免费在线观看| 精品国产中文一级毛片在线看| 亚洲中文字幕在线一区播放| 在线亚洲精品自拍| 精品久久香蕉国产线看观看gif| 婷婷午夜影院| 国产精品成人一区二区不卡| 亚洲品质国产精品无码| 国产福利免费视频| 国产粉嫩粉嫩的18在线播放91| 日韩毛片基地| 成人免费网站在线观看| 成人免费午夜视频| 美女裸体18禁网站| 91久久大香线蕉| 麻豆精品在线| 国产精品自在线拍国产电影 | 亚洲欧洲日产国产无码AV| 波多野结衣一二三| 国产在线视频自拍| 97在线观看视频免费| 女人18毛片水真多国产| 欧美日本在线| 国产成年女人特黄特色大片免费| 欧美日韩午夜视频在线观看| 一本一本大道香蕉久在线播放| 国产福利在线观看精品| 国产电话自拍伊人| 九九热视频精品在线| 在线欧美日韩国产| 黄色一级视频欧美| 国产精品免费电影| 特级做a爰片毛片免费69|