存儲過程將.txt.xls文件數據導入數據庫表格
導這兩種類型的文件,都有一定的要求。
對於.txt文件,需要數據非常整齊,有間隔符,且每行分隔後的數據項數目、類型一致。例如:
c1@c2@c3@c4
101@2007-1-1@lislie@中國
102@2008-1-1@merry@中國
第一行為表頭,如此我們在導入數據時,可以選擇導入.txt文件中的部分字段:
INSERT INTO tableName
SELECT * FROM
OPENROWSET('MSDASQL','Driver={Microsoft Text Driver (*.txt; *.csv)};DEFAULTDIR=d:/DataWarehouse;Extensions=CSV;',
'SELECT
c1,c2,c3
FROM [textname.txt]')
where c1 is not null
SELECT * FROM
OPENROWSET('MSDASQL','Driver={Microsoft Text Driver (*.txt; *.csv)};DEFAULTDIR=d:/DataWarehouse;Extensions=CSV;',
'SELECT
c1,c2,c3
FROM [textname.txt]')
where c1 is not null
tableName為數據庫目標表格,textname.txt為文件名,DEFAULTDIR指定.txt文件所在路徑。where條件,可過濾.txt文件中數據。
.xls文件的數據相對整齊,但在寫腳本導數據時,還是有一些注意的地方:
DELETE FROM @tptablename
INSERT INTO @tptablename
SELECT *
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source='
+ @Filepath + @FileName
+ '.xls;Extended Properties=Excel 8.0')...[@SheetName$]
INSERT INTO @tptablename
SELECT *
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source='
+ @Filepath + @FileName
+ '.xls;Extended Properties=Excel 8.0')...[@SheetName$]
@tptablename為目標表表名,@Filepath為.xls文件路徑,@FileName為文件名前綴,拚接後,是包含文件係統完整路徑的excell文件,@SheetName為Excell工作表名。要求表的字段跟excell的一直,且類型符合。
最後更新:2017-04-02 00:06:45