天天看點

各種資料庫導入csv檔案的方法

假設現有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檔案格式進行控制和處理。