簡體   English   中英

在VARCHAR數據類型中,EXCEL導入sql為小數返回NULL

[英]EXCEL import to sql returning NULL for decimals when in VARCHAR data type

我正在開發一種軟​​件,它在過去幾年中已經過度擴展,並且數據庫需要定期更新。 客戶現在在我們格式化的大型電子表格上向我們提供數據,並將開始導入數據庫。 我正在使用導入和導出數據(32位)向導。 數據庫中的一列包含“1.1.1.2”等值,我將它們作為Varchar導入,因為它是數據庫中的數據類型。 但是,對於像'8.5'這樣的值,'NULL'會導入導入的insead。 它僅在有一個小數點時出現。

這是excel的格式錯誤還是錯誤的數據類型?

它是Excel中的格式。 我在導入和導出數據向導和Excel中遇到了很多麻煩,現在我首先將Excel文件保存為csv文件以刪除格式化然后導入它。 這樣做需要額外的幾秒鍾,但是我已經節省了時間,因為必須處理掉落的前導零,隨機NULL值等。

我給你的第一個建議是讓你的客戶發送文本文件或至少.csv文件。 Excel轉換非常糟糕,如果您的客戶停止向Excel提供Excel,您將花費更多時間來使工作正常。

問題是數據類型由最早的行確定,因此如果Excel認為稍后的數據是Int或小數而不是文本,則導入將認為是壞數據並將其清空。

調整咆哮功能:我導入數據為生,我拒絕接受Excel文件,因為嘗試導入它們和任何其他類型的文件有許多,更多的問題要處理。 我們不得不向其中一些人發送關於如何將Excel文件保存為.csv的說明,但如果您不接受Excel作為數據源,則創建導入的成本要低得多。 令人遺憾的是,設計SSIS的人(這是巫師在引擎蓋下使用的)似乎認為Excel是很少人需要導入的東西,因此沒有花時間為它創建一個良好的導入路徑。 這是他們自己公司大聲喊叫的產品。 人們會認為它會得到一些最好的支持。 關閉咆哮功能。

我發現通過運行一個腳本,在任何數字字段前放置它們導致它們導入SQL。

我在12個電子表格中碰到了這個,不知道為什么它成了問題。

如果你有很多行,一個簡單的VBA腳本可以使這很容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM