資源描述:
《java連接oracle和sqlloader入庫(kù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、1.Oraclesqlload入門基礎(chǔ)學(xué)習(xí)1.1sqlloader的特點(diǎn)oracle自己帶了很多的工具可以用來(lái)進(jìn)行數(shù)據(jù)的遷移、備份和恢復(fù)等工作。但是每個(gè)工具都有自己的特點(diǎn)。比如說(shuō)exp和imp可以對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行導(dǎo)出和導(dǎo)出的工作,是一種很好的數(shù)據(jù)庫(kù)備份和恢復(fù)的工具,因此主要用在數(shù)據(jù)庫(kù)的熱備份和恢復(fù)方面。有著速度快,使用簡(jiǎn)單,快捷的優(yōu)點(diǎn);同時(shí)也有一些缺點(diǎn),比如在不同版本數(shù)據(jù)庫(kù)之間的導(dǎo)出、導(dǎo)入的過程之中,總會(huì)出現(xiàn)這樣或者那樣的問題,這個(gè)也許是oracle公司自己產(chǎn)品的兼容性的問題吧。sqlloader工具卻沒有這方面的問題,它可以把一些以文本格式存放的數(shù)據(jù)順利的導(dǎo)入到oracle數(shù)據(jù)庫(kù)中,是一
2、種在不同數(shù)據(jù)庫(kù)之間進(jìn)行數(shù)據(jù)遷移的非常方便而且通用的工具。缺點(diǎn)就速度比較慢,另外對(duì)blob等類型的數(shù)據(jù)就有點(diǎn)麻煩了。1.2sqlloader幫助進(jìn)入dos命令,輸入sqlldr:C:>sqlldr,將會(huì)顯示sqlloader的幫助。1.3sqlloader使用例子新建input.ctl,用文本格式編寫:loaddata --1、控制文件標(biāo)識(shí)infile'c:test.txt' --2、要輸入的數(shù)據(jù)文件名為test.txtappendintotabletest --3、向表test中追加記錄fieldsterminatedby"," --4、字段以“,”進(jìn)行
3、分割取出數(shù)據(jù)(id,username,password,sj) -----定義列對(duì)應(yīng)順序新建test.txt,內(nèi)容如下:id,username,password,sj1,2,3,41,2,3,41,2,3,41,2,3,41,2,3,41,2,3,41,2,3,41,2,3,4Sqlloader命令Sqlldruserid=utl/utl2011@utlcontrol=c:input.ctl注:其中Test表已存在,否則將導(dǎo)入失敗,input.ctl和test.txt最好放同一目錄下,我的是在c盤的根目錄下1.4java環(huán)境下調(diào)用sqlloaderStringstrcmd="cmd/csq
4、lldruserid=utl/utl2011@utlcontrol=c:\input.ctl";Processprocess=Runtime.getRuntime().exec(strcmd);1.類ProcessProcessBuilder.start()和Runtime.exec方法創(chuàng)建一個(gè)本機(jī)進(jìn)程,并返回Process子類的一個(gè)實(shí)例,該實(shí)例可用來(lái)控制進(jìn)程并獲取相關(guān)信息。Process類提供了執(zhí)行從進(jìn)程輸入、執(zhí)行輸出到進(jìn)程、等待進(jìn)程完成、檢查進(jìn)程的退出狀態(tài)以及銷毀(殺掉)進(jìn)程的方法。創(chuàng)建進(jìn)程的方法可能無(wú)法針對(duì)某些本機(jī)平臺(tái)上的特定進(jìn)程很好地工作,比如,本機(jī)窗口進(jìn)程,守護(hù)進(jìn)程,Microso
5、ftWindows上的Win16/DOS進(jìn)程,或者shell腳本。創(chuàng)建的子進(jìn)程沒有自己的終端或控制臺(tái)。它的所有標(biāo)準(zhǔn)io(即stdin,stdout,stderr)操作都將通過三個(gè)流(getOutputStream(),getInputStream(),getErrorStream())重定向到父進(jìn)程。父進(jìn)程使用這些流來(lái)提供到子進(jìn)程的輸入和獲得從子進(jìn)程的輸出。因?yàn)橛行┍緳C(jī)平臺(tái)僅針對(duì)標(biāo)準(zhǔn)輸入和輸出流提供有限的緩沖區(qū)大小,如果讀寫子進(jìn)程的輸出流或輸入流迅速出現(xiàn)失敗,則可能導(dǎo)致子進(jìn)程阻塞,甚至產(chǎn)生死鎖。當(dāng)沒有Process對(duì)象的更多引用時(shí),不是刪掉子進(jìn)程,而是繼續(xù)異步執(zhí)行子進(jìn)程。對(duì)于帶有Process
6、對(duì)象的Java進(jìn)程,沒有必要異步或并發(fā)執(zhí)行由Process對(duì)象表示的進(jìn)程。2.Myeclipse單步調(diào)試2.1單步調(diào)試的基本操作1,首先在一個(gè)java文件中設(shè)斷點(diǎn),然后運(yùn)行,當(dāng)程序走到斷點(diǎn)處就會(huì)轉(zhuǎn)到debug視圖下,?2,F5鍵與F6鍵均為單步調(diào)試,F(xiàn)5是stepinto,也就是進(jìn)入本行代碼中執(zhí)行,F(xiàn)6是stepover,也就是執(zhí)行本行代碼,跳到下一行,3,F7是跳出函數(shù)stepreturn4,F8是執(zhí)行到最后。?2.2單步調(diào)試詳解1.StepInto(alsoF5)跳入2.StepOver(alsoF6)跳過?3.StepReturn(alsoF7)執(zhí)行完當(dāng)前method,然后return跳
7、出此method?4.stepFilter逐步過濾一直執(zhí)行直到遇到未經(jīng)過濾的位置或斷點(diǎn)(設(shè)置Filter:window-preferences-java-Debug-stepFiltering)?5.resume重新開始執(zhí)行debug,一直運(yùn)行直到遇到breakpoint?6.hitcount設(shè)置執(zhí)行次數(shù)適合程序中的for循環(huán)(設(shè)置breakpointview-右鍵hitcount)?7.insp