我有一個sql表,通過Excel中的SQLBulkCopy填充。複製下來是使用Microsoft ACE驅動程序完成的。檢測來自Excel的varchar列中的值0x
我有一個特定的文件的問題 - 當它加載到SQL,一些列(在Excel中顯示爲空)包含奇數值。
例如,在運行此SQL:
SELECT
CONVERT(VARBINARY(10),MyCol),
LEN(MyCol)
FROM MyTab
將返回
0x, 0
即 - 在列變換的值以varbinary
示出了一些,但這樣做將varchar的長度沒有顯示出長度。我意識到所顯示的值是十六進制值的詞幹,但它的奇怪之處在於它到達那裏,以及要檢測的難度。
很明顯,我可以清除Excel中的單元格,但我真的需要自動檢測此問題,因爲最終用戶會遇到同樣的問題。數據得到處理時,會導致問題進一步惡化。很難將問題從其最終症狀中解救出來,成爲這個問題的源頭。
除上述轉換varbinary
在SSMS輸出我還沒有想出的這些檢測值的方法,無論是在Excel或通過SQL腳本將其刪除。
任何想法?
這只是一個空字符串是不是? 'SELECT CONVERT(VARBINARY(10),'')' – 2012-07-19 18:11:18
啊對。所以問題變成了爲什麼ACE插入這個而不是像通常爲空單元一樣。我不希望一個大的後期過程將它們轉換爲空值。 – 2012-07-19 19:15:58