還到一個無解的怪問題
schema.ini 內容如下
[test.txt]
ColNameHeader=False
Format=Delimited(;)
test.txt資料內容如下
test;1234;3FDS
test;1234;6F8S
查詢SQL如下
SELECT * FROM OPENROWSET( 'Microsoft.ACE.OLEDB.12.0','Text;Database=C:\TEMP\;',
'SELECT * FROM test.txt' )
回傳結果如下
F1 F2 F3 F4
test 1234 NULL
test 1234 68.00
F4一欄的值都不對了。
參考 KB說明,在schema.ini加了MaxScanRows=0設定,就正常了
F1 F2 F3
test 1234 3FDS
test 1234 6F8S
巴特....把test.txt資料內容改成如下
test;1234;6F8S
test;1234;3FDS
結果卻又不正確了
F1 F2 F3
test 1234 68.00
test 1234 NULL
?F?S 到底隱藏著什麼密碼學呢?? 只要他放在第一行不管哪一欄就亂套了.....
這是什麼情形啊....無解
2014/07/17 更新
因為讀檔時,這個欄位變成數值型態的機率有點高,後來用了一個撇步去克服。
就是先建一個暫存檔,例temp.txt,里頭只放一筆全部都是字串態的資料行,例
XXXX;XXXX;XXXX
然後在OPENQUERY讀取前,利用xp_cmdshell 先把這個檔利用copy指令與暫存檔合併在一起
copy /b /y temp.txt+test.txt test_new.txt
schema.ini 內容加入MaxScanRows=1,強迫以第一行的型態來設定欄位型態
[test.txt]
ColNameHeader=False
Format=Delimited(;)
MaxScanRows=1
再讀取後排除第一筆暫存資料列,就可以正常寫入檔案內容了
SELECT * FROM OPENROWSET( 'Microsoft.ACE.OLEDB.12.0','Text;Database=C:\TEMP\;',
'SELECT * FROM test_new.txt' ) WHERE F1 <> 'XXXX'
訂閱:
張貼留言 (Atom)
自動記錄滑鼠點選操作
為了一個需求,需要人工去點選幾個滑鼠的點選行為,找了幾種工具,覺得GS Auto Clicker最實用,極符合我的需求,尤其是多個固定位置的button點擊,解決了一個很耗時間的工作。 最後設定完預設hotkey F8為啟用鍵,就可以開始自動做工了。再按F8結束工作。 GS Au...
-
上網找了免費的白箱檢測工具,找到了 puma scan 因為支援OWASP TOP 10的檢測,所以這是一個符合客戶需求又能與Visual studio結合的工具(白話說...交差了事矣....) 更重要的是這不用錢....檢測工具都貴森森的,尤其是源碼檢測工具。 ht...
-
建了一個工作排程,定時執行batch檔。 batch中寫了一段xcopy,主要針對有異動較新檔案時才複製。 echo off for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find...
-
改用SQL Server Management Studio 2017有一段時間了。 在執行一段之前寫的SQL要組出一段語法時,里頭包含了使用CHAR(10)當作換行符號的文字,在輸出結果中,使用複製貼上的方式要進行執行時,發現換行符號都失效了。 但如果使用Results...
沒有留言:
張貼留言