假設現有test.csv檔案存放有以下資料:
a1,b1
a2,b2
存放路徑為:D:\test.csv。
Oracle資料庫導入csv檔案方法:
确儲存在需要導入的表test,并且欄位數量和類型(存在欄位A和B)要和需要導入的一緻,如沒有需要導入的表,則需要先建立test表。
建立test.ctl檔案,用記事本編輯寫入:
load data
characterset utf-8
infile 'D:\test.csv'
into table "test"
fields terminated by ','
(A,B)
打開指令提示行,輸入并執行:
sqlldr userid=user/[email protected] control=d:test.ctl log=d:\test.log
注:user/[email protected]為帳号和密碼以及資料庫名稱,如BM_APP/[email protected]。
SQL Server資料庫導入csv檔案方法:
確定需要導入的檔案test.csv存在于安裝SQL Server的伺服器上,存放路徑為:D:\test.csv。
确儲存在需要導入的表test,并且欄位數量和類型(存在欄位A和B)要和需要導入的一緻,如沒有需要導入的表,則需要先建立test表。
執行以下SQL語句:
BULK INSERT test
FROM 'D:\test.csv'
WITH(
FIELDTERMINATOR=',',
ROWTERMINATOR='\n'
)
MySQL資料庫導入csv檔案方法:
執行以下SQL語句:
load data infile '/tmp/test.csv'
into table test_info
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n';
DB2資料庫導入csv檔案方法:
在DB2 指令行視窗執行以下語句(注意沒有換行):
LOAD client FROM ''D:\test.csv' OF del MODIFIED BY codepage=1208 chardel"" COLDEL0x2c METHOD P (1,2) INSERT INTO TEST(col1,col2)
Load Client from說明是從用戶端導入檔案,如果是直接在資料伺服器上執行,則去掉Client關鍵詞。
OF DEL,del是delimeter的縮寫,意為以指定的标點符号作為欄位之間的分割,而不是欄位的長度是固定的。
CODEPAGE,指明csv檔案的編碼。
Chardel标明字元串欄位以什麼字元作為起始标志,此處說明是以雙引号括起來。
COLDEL标明欄位之間的間隔符号,此處說明是以逗号作為欄位的分隔符。
METHOD P說明是按照欄位的序号,來定位需要導入的欄位資料;另外有METHOD L,說明是按照欄位在CSV檔案中固定的起始位置,例如:METHOD P(001 020,022 030,032 045,047 100)。
INSERT INTO指明插入到哪一張表及對應的字段。
Sybase資料庫導入csv檔案方法:
在指令行中執行以下語句:
bcp dbo.test in D:\test.csv -Usa -P111111 -SSYBASE -Jcp850 -c
以上為最基本的導入csv檔案的方法,并沒有對特殊的資料類型(如date類型等)、檔案編碼格式、csv檔案的儲存格式(如是否包含雙引号,是否包含标題欄,是否空值為null等)等進行考慮和特殊處理,在實際應用中還需要考慮多方面的内容。
以上方法均是借助資料庫本身所提供的方法和指令,還有一種更簡易的方法是借助資料庫開發工具進行,如Aqua Data Studio工具就提供了比較強大的csv檔案導入和導出的功能,并且可以對導入或導出的csv檔案格式進行控制和處理。