1. 程式人生 > >excel匯入資料到postgresql資料庫

excel匯入資料到postgresql資料庫

功能:把excel另存為csv,然後將裡面的資料匯入到postgres資料庫。

實現步驟:

(1)檢視資料,取得所有的欄位名稱

"ID","CALLID","CALLERID","CALLEDID","LOGTIME","ACTION_TYPE","ACTION_DES"
5829,76881,cccccc,tttt,2009年07月13日09時57分34秒,"bbbbb",
5830,76881,cccccc,tttt,2009年07月13日09時57分34秒,"aaaaa","1\116.kkkk"
5831,76881,cccccc,tttt,2009年07月13日09時57分43秒,"aaaaa","1\142.kkkk"

5832,76881,cccccc,tttt,2009年07月13日09時57分46秒,"aaaaa","1\141.kkkk"
5833,76881,cccccc,tttt,2009年07月13日09時57分57秒,"aaaaa","1\116.kkkk"
5834,76881,cccccc,tttt,2009年07月13日09時58分07秒,"aaaaa","1\142.kkkk"

通過上面的欄位名稱和下面的資料,可以知道資料的欄位名稱和資料型別。

(2)根據欄位名稱和型別,寫出建立表的指令碼

drop table aa_log ;

create table aa_log 
(
    id int8,
    callid int8,

    callerid int8,
    calledid int8,
    logtime varchar(100),
    action_type varchar(100),
    action_des varchar(100)
);

指令碼儲存為/tmp/a.sql

(3)建立資料表

$ psql -hlocalhost -U postgres -d logdb -f /tmp/a.sql

執行,建立資料表。

(4)修改資料
上面的資料,字串型別有"aaaaa" ,那麼匯入到資料庫的時候,對應的值也會有符號"aaaaa",所以,其值實際是""aaaaa"",為了避免這樣,我們要先把資料裡面的"去掉。
在vim裡面,用%s/“//g把所有的"符號替換掉。


5829,76881,cccccc,tttt,2009年07月13日09時57分34秒,bbbbb,
5830,76881,cccccc,tttt,2009年07月13日09時57分34秒,aaaaa,1\116.kkkk
5831,76881,cccccc,tttt,2009年07月13日09時57分43秒,aaaaa,1\142.kkkk
5832,76881,cccccc,tttt,2009年07月13日09時57分46秒,aaaaa,1\141.kkkk
5833,76881,cccccc,tttt,2009年07月13日09時57分57秒,aaaaa,1\116.kkkk
5834,76881,cccccc,tttt,2009年07月13日09時58分07秒,aaaaa,1\142.kkkk

(5)刪除title

把資料最上面的那行欄位定義資料刪除掉。否則會出現匯入資料庫錯誤。


(6)匯入資料
logdb=# copy aa_log from '/tmp/aa.csv' with delimiter ',';
COPY 273
logdb=#

(7)檢查資料

至此,匯入資料處理完畢。