excel匯入資料到postgresql資料庫
阿新 • • 發佈:2019-01-11
功能:把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)檢查資料
至此,匯入資料處理完畢。
實現步驟:
(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)檢查資料
至此,匯入資料處理完畢。