1.oracle數(shù)據(jù)庫(kù)有一個(gè)student表,現(xiàn)有一個(gè)excel表:student.xlsx,需導(dǎo)入oracle數(shù)據(jù)庫(kù)student表中。
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、雨山ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的雨山網(wǎng)站制作公司
student表的擁有者是system,system密碼為test。
2.打開(kāi)需導(dǎo)入的excel表格,單擊office按鈕,選擇另存為--其他格式。
選擇保存路徑(置于D:\),保存類型CSV(逗號(hào)分隔)(*.csv),設(shè)置文件名為student.csv,單擊保存 。
3.新建input.ctl文件(置于D:\),內(nèi)容為:
load data
infile?'d:\student.csv'
append?into?table student?fields terminated by ','
trailing nullcols(id,name,sex,age)
說(shuō)明:infile后面參數(shù)為欲導(dǎo)入的excel表(已轉(zhuǎn)換成csv格式)路徑及名稱;append在表后追加;table后面跟oracle數(shù)據(jù)庫(kù)中的表名稱; terminated by ','表示字段分隔符;(id,name,sex,age)表示字段名稱列表。
4.同時(shí)按Windows徽標(biāo)鍵和R鍵,打開(kāi)運(yùn)行,輸入cmd,打開(kāi)命令提示符,輸入命令:
sqlldr userid=system/test@netservicename control=d:\input.ctl
說(shuō)明:system/test,為oracle數(shù)據(jù)庫(kù)表student的所有者及其密碼;
@? netservicename為網(wǎng)絡(luò)服務(wù)名;
control是input.ctl文件名稱及路徑。
5.進(jìn)入oracle數(shù)據(jù)庫(kù),查詢student表,excel已導(dǎo)入成功。
輸入l 命令,查看歷史執(zhí)行命令,然后可以用c /one/two 進(jìn)行將One替換成two?;蛘?a one進(jìn)行追加one。修改完成后,輸入/就可以重新執(zhí)行了。
Oracle讀取數(shù)據(jù)的最大限制取決于操作系統(tǒng)和Oracle對(duì)多塊讀IO的限制。在物理上來(lái)說(shuō),一個(gè)SQL語(yǔ)句要讀取某個(gè)記錄,必須將該記錄讀取到DB CACHE中,然后才能從DB CACHE中獲取,這種訪問(wèn)我們一般稱為物理讀(READ),如果這個(gè)數(shù)據(jù)已經(jīng)存在于DB CACHE中,那么前臺(tái)進(jìn)程可以直接從DB CACHE中讀取數(shù)據(jù),這樣的讀取成為邏輯讀(GET),如果要讀取的數(shù)據(jù)已經(jīng)被修改,需要從UNDO中讀取前映像來(lái)獲取一致性的數(shù)據(jù),那么會(huì)從UNDO中取出前映像,和當(dāng)前的數(shù)據(jù)塊一起形成一個(gè)一致性讀塊(CR BLOCK),然后再?gòu)腃R BLOCK中讀取數(shù)據(jù),這種訪問(wèn)方式稱為一致性讀(CR GET)。 從邏輯上講, Oracle讀取數(shù)據(jù)通過(guò)三種途徑:全表掃描( Full Table Sacn,FTS )、引掃描、通過(guò)ROWID直接訪問(wèn)。在閱讀SQL執(zhí)行計(jì)劃的時(shí)候,可以通過(guò) TABLE ACCESS子句來(lái)查看Oracle訪問(wèn)某個(gè)表的方法,一般來(lái)說(shuō),對(duì)于大型的表來(lái)說(shuō),如果出現(xiàn) TABLE ACCESS FULL 的提示,是需要加以重視的,一般情況下,對(duì)于大表的全表掃描應(yīng)該是盡量避免的。下面是一個(gè)簡(jiǎn)單的執(zhí)行計(jì)劃:Query Plan----------------------------------------- SELECT STATEMENT [CHOOSE] Cost=1234 TABLE ACCESS FULL LARGE [:Q65001] [ANALYZED]查看SQL的執(zhí)行計(jì)劃的時(shí)候,最右邊的,最上面的操作是首先被執(zhí)行的,上面的例子只有一個(gè)操作,就是對(duì)表“LARGE”進(jìn)行全表掃描。當(dāng)這個(gè)步驟執(zhí)行完畢后,就會(huì)將結(jié)果集返回給上面一層的語(yǔ)句,上面的例子就是 SELECT STATEMENT 這個(gè)語(yǔ)句,一般來(lái)說(shuō) SELECT STATEMENT 是整個(gè)執(zhí)行計(jì)劃的頂層。 [CHOOSE]表明這個(gè)SQL語(yǔ)句的OPTIMIZER_GOAL ,在這個(gè)提示的右側(cè)是COST數(shù)據(jù),如果COST是有實(shí)際值的,那么說(shuō)明使用了CBO優(yōu)化器,如果COST沒(méi)有實(shí)際值,那么說(shuō)明使用了RBO優(yōu)化器。比如: SELECT STATEMENT [CHOOSE] Cost=COST只是一個(gè)相對(duì)的值,只是優(yōu)化器用來(lái)分析訪問(wèn)路徑的優(yōu)劣的,相同的SQL, COST越小的執(zhí)行計(jì)劃,起執(zhí)行效果越好,開(kāi)銷越小。而不同的SQL ,其COST值是沒(méi)有可比性的。 [:Q65001]指明這部分操作被采用并行查詢的方式執(zhí)行,