文字檔案匯入到資料庫中的幾種方法

2021-04-13 12:52:18 字數 3031 閱讀 6903

文字檔案匯入到資料庫中的幾種方法 

大型的開發中常常遇到資料來源是平面檔案(如文字檔案)的情況,對於這樣的資料來源,無法使用資料庫對其資料進行有效的管理,另外也無法使用sql語句對其進行查詢和操作,所以當務

之急就是將這些平面檔案匯入到資料庫中,然後就可以對其進行高效的操作了。

下面介紹幾種常見的資料匯入的方法,希望能夠給大家啟迪。另外,本文所涉及到的資料庫均為

oracle資料庫,其實對於其他資料庫而言,方法類似。

一、sql*:loader

該方法是oracle資料庫下資料匯入的最重要的方法之一,該工具由oracle客戶端提供,

其基本工作原理是:首先要針對資料原始檔製作乙個控制檔案,控制檔案是用來解釋如何對原始檔進行解析,其中需要包含原始檔的資料格式、目標資料庫的字段等資訊,乙個典型的控制檔案為如下形式:

load data

infile  '/ora9i/fengjie/agent/data/ipaagentdetail200410.txt'    

truncate

into table fj_ipa_agentdetail

fields terminated ","

trailing nullcols

(  agent_no       char,

agent_name     char,

agent_address  char,

agent_linknum  char,

agent_linkman  char          

)資料庫

其中,infile  '/ora9i/fengj

ie/agent/data/ipaagentdetail200410.txt'指明所要匯入的原始檔,其實原始檔也可以直接通過命令

行來輸入獲得,fj_ipa_agentdetail為目標表的名字,fields terminated ","是指原始檔的各個欄位是以逗號分隔,trailing nullcols表示遇到空欄位依然寫入到

表中,最後這5個字段是目標資料庫表的字段結構。通過上面這個典型的控制檔案的格式分析可知,控制檔案需要與原始檔的格式資訊一致,否則匯入資料會出現異常。

除了控制以外,sql*loader的還需要資料檔案,即原始檔。根據格式的不同,原始檔可以分為固定字段長度和有分隔符這兩大類,這裡將分別說明這兩種情況: 固定字段長度的文字檔案

就是每個字段擁有固定的字段長度,比如:

602530005922        1012

602538023138        1012

602536920355        1012

602531777166        1012

602533626494        1012

602535700601        1012

1001,上海長途電信綜合開發公司,南京東路34號140室

1002,上海樺奇通訊科技****,武寧路19號1902室

1003,上海邦正科技發展****,南京東路61號903室

對於上述兩種檔案格式sql*loader均可以做處理,下面就前面那個固定長度的文本來舉例說明:

由於該文字只有兩個字段,乙個為裝置號,乙個是區局編號,兩者的長度分別為20和5,那麼可以編制控制檔案如下:

load data

infile  '/ora9i/fengjie/agent/data/ipaagent200410.txt'

trun

二、 使用專業的資料抽取工具

目前在資料倉儲領域中,資料抽取與裝載(etl)是一重要的技術,這一技術對於一些大的資料檔案或者檔案數量較多尤其適合。這裡簡單介紹目前一款主流的資料抽取工具

――informati

ca

該工具主要採用圖形介面進行程式設計,其主要工作流程是:首先將源資料檔案的結構(格式)匯入為informatica裡,然後根據業務規則對該結構進行一定的轉換(transformation),最終匯入到目標表中。

以上過程僅僅只是做了乙個從源到目標的對映,資料的實際抽取與裝載需要在工作流(workflow)裡進行。

使用專業的資料抽取工具,可以結合業務邏輯對多個源資料進行join,union,insect等操作,適合於大型

和資料倉儲。

資料庫

三、 使用access工具匯入

可以直接在access裡選擇『開啟『文字檔案,這樣按照嚮導來匯入乙個文字檔案到access中,然後使用程式設計的方法

將其匯入到最終的目標資料庫中。

這種方法雖然煩瑣,但是其對系統的軟體配置要求相對較低,所以也是有一定的使用範圍。

資料庫

四、 小結

總之,平面檔案轉化為資料庫格式有利於資料的處理,顯然,資料庫強大的資料處理能力比直接進行檔案i/o效率高出很多,希望本文能夠對該領域做乙個拋磚引玉的作用。

資料庫

cate

into table fj_ipa_agent

(         devno      position(1:20) char,

branch_no    position(21:25) char         )

其中,'/ora9i/fengjie/agent/data/ipaagent200410.txt'為該檔案的完全路徑,position(m:n)表示該欄位是從位置m到位置n。

對於有分隔符的資料檔案,前面已經有乙個例子,這裡就不再贅述了。總之,使用sql*loader能夠輕鬆將資料檔案匯入到資料庫中,這種方法也是最常用的方法.

將文字檔案匯入到Excel資料表中

dim r sub importfromtextfile dim fso as object,sfile as object,blnexist as boolean dim filename as string,i as integer,icol as integer,linetext as str...

通過sqlldr將文字檔案匯入到表中

新來了乙個任務,要求將大量的資料匯入到資料庫的表中。先說明一下,存放資料的資料來源的格式有各種各樣,資料庫是oracle。決定用sqlldr命令來實現。首先要建立乙個ctl檔案,如下 load data 該檔案的解釋 infile test.txt 說明資料來源的 如果是想把原來表中的資料刪除,再新...

從文字檔案匯入資料到資料庫表

最近一直在使用常用資料庫的資料匯入,這裡把已經用到的匯入命令先簡要列舉一下 不介紹每乙個option的具體意義,如果你用到了,請直接msdn檢視具體option的意義,此處不再贅述!bulk insert erp users from d rows 1m.txt with datafiletype ...