用指令碼將excel,csv等檔案匯入資料庫

2021-05-23 17:28:16 字數 1223 閱讀 9432

1、--導excel檔案

select

訂單編碼

from openrowset('microsoft.ace.oledb.12.0', 'excel 12.0;imex=1;hdr=yes;database=d:/工作目錄/資料資訊/貨到付款,多維度差異核對明細資料.xls',[sheet1$])

group by 訂單編碼

匯入匯出 excel 檔案時,連線字串裡面已經設定了 imex=1,仍有部分資料不能匯出,經過研究,需要在登錄檔中進行設定 typeguessrows 的配置,預設情況下,驅動程式會掃瞄前 8 行資料,來對資料型別進行取樣。設定為 0 ,將對列的所有行進行掃瞄,如果前八行取樣資料都是數值型別的話,設定 imex = 1 也不會將剩下的行的預設資料型別轉換為文字,它將保留數值型別,也就是把整個列當成數字型別對待。 因此,要想得到完整的資料,需要修改登錄檔的設定 typeguessrows 為 0。typeguessrows 在登錄檔的位置:

[hkey_local_machine/software/microsoft/jet/4.0/engines/excel]

windows 7等 64 系統:

[hkey_local_machine/software/wow6432node/microsoft/jet/4.0/engines/excel]

imex 的可能設定是:

0 export 模式

1 import 模式

2 linked 模式(full update capabilities)

設定 typeguessrows 為 0 將會導致效能的下降。imex=1 資料內容也能出現不正常的現象,比如長數字可能會出現科學計數法的格式顯示。比較好的做法是匯出前,對所有單元格進行處理,在單元格內容前面加 '。

2、--導csv檔案

select   *

into #1

from     opendatasource('microsoft.jet.oledb.4.0','text;hdr=yes;database=d:/統計/2023年3月/對賬/201002明細/首信易')

...[a#csv]

3、--導csv檔案

bulk

insert ss

from 'd:/統計/2023年3月/對賬/201002明細/首信易/a.csv' with(fieldterminator=',',rowterminator='/n')

用sed將SQL指令碼轉換為csv文件

由於前幾天總是會收到製作資料庫文件的任務,而且資料庫表的數量龐大,於是我就想偷懶,寫個指令碼將sql指令碼轉換成csv文件再用excle稍微美化一下粘到word中。grep e 1 先用grep將帶有 這些符號的行取出 接上條 sed e s a z l e g 用sed將全文大寫轉成小寫 e s ...

用exerb將ruby生成exe檔案

2.安裝 在dos環境下,輸入命令ruby setup.rb即可。3.使用方法 例 單檔案 a.準備檔案 在ruby自帶的scite的rb檔案的編輯器中,輸入 puts hello 儲存檔名為 hello.rb b.進入dos環境,輸入命令ruby hello.rb確認是否檔案是否存在,請一定這樣做...

用指令碼 開啟檔案 並列印內容

1 bin bash 23 cat file 待讀取的檔案 while read line4do 5 echo line 6done 7 1 bin bash 23 cat a.txt while read line4do 5 echo line 6 done cat a.txt 好像就可以了 ca...