將檔案匯入到資料庫中的方法小結

2021-03-31 08:56:57 字數 2516 閱讀 6250

大型的資料庫開發中常常遇到資料來源是平面檔案(如文字檔案)的情況,對於這樣的資料來源,無法使用資料庫對其資料進行有效的管理,另外也無法使用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/fengjie/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'

truncate

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能夠輕鬆將資料檔案匯入到資料庫中,這種方法也是最常用的方法。

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

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

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

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

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

三、 使用access工具匯入

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

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

四、 小結

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

將XML檔案匯入到Oracle資料庫中

前台 後台 using system using system.data using system.configuration using system.web using system.web.security using system.web.ui using system.web.ui.web...

將shp檔案匯入到mysql資料庫中

shp檔案轉sql檔案 匯入msql 遇到問題 1 將shp以及shp的相關檔案和doshere的doc檔案放在同一目錄 2 doc命令為 shp2mysql shp檔名.shp 表名 資料庫名 生成的sql檔名.sql 3 修改生成的sql檔案 alter table 表名 add the geo...

將CSV檔案匯入到hive資料庫

將csv檔案匯入hive後出現了所有的字段只顯示在新建的表的第乙個欄位中,後面的字段全是null.出現這種的原因是hive以行分隔資料,需要修改為按逗號 進行分隔讀取,具體操作如下,首先在hive中建立自己的table,並且設定以逗號分隔。create table ip ip varchar 30 ...