1. 程式人生 > >SQL Server2012使用導入和導出向導時,用sql語句作為數據源,出現數據源類型會變成202或者203

SQL Server2012使用導入和導出向導時,用sql語句作為數據源,出現數據源類型會變成202或者203

tegra 程序 保存 ons tail nis sdn 信息 ping

用MS SqlServer2012進行數據導出時,使用的查詢語句導出,但是出現了錯誤:

“發現 xx個未知的列類型轉換
您只能保存此包“

點擊列查看詳細錯誤信息時,可以看到:

[源信息]
源位置: 192.168.1.97
源提供程序: SQLNCLI11
表: [查詢]
列: ItemSize
列類型: 203
SSIS 類型: (類型未知...)
映射文件(到 SSIS 類型): C:\Program Files (x86)\Microsoft SQL Server\110\DTS\MappingFiles\MSSQLToSSIS10.XML

[目標信息]
目標位置: C:\Users\Administrator\Desktop\火星公司_測試_發貨單_201705181134.xls


目標提供程序: Microsoft.Jet.OLEDB.4.0
表: `查詢`
列: ItemSize
列類型: VarChar
SSIS 類型: Unicode 字符串 [DT_WSTR]
映射文件(到 SSIS 類型): C:\Program Files (x86)\Microsoft SQL Server\110\DTS\MappingFiles\JetToSSIS.xml

[轉換步驟]
轉換未知...
SSIS 轉換文件: C:\Program Files (x86)\Microsoft SQL Server\110\DTS\binn\DtwTypeConversion.xml

在CSDN的一個帖子中查到,一些信息:

這是一個bug,這裏解釋了原因以及解決方案
https://connect.microsoft.com/SQLServer/feedback/details/775897/sql-server-import-and-export-wizard-does-not-recognise-varchar-and-nvarchar

上面鏈接中介紹:

描述

當輸入檢索通過一個查詢使用SQL Server導入和導出向導在SQL Server 2012中的數據,VARCHAR類型被公認為是“200”而nvarchar類型“202”。這導致向導顯示“審查”的數據類型的警告/錯誤類似於以下內容:14未知列類型轉換(S)你只能拯救packagethis意味著數據傳輸不能執行和向導只能保存轉移為ssis包的問題。似乎只出現在數據源查詢-即“查詢指定數據傳輸”中指定表復制或查詢的SQL Server導入和導出向導部分。選擇“復制數據從一個或多個表或視圖”選項中指定表復制或查詢部分似乎認識到varchar和nvarchar數據類型正確。

在品論中有人指出,可以將你的查詢語句,創建成視圖,然後用視圖導出就正常了,我沒有試過。

微軟的工作人員說,上面的反饋重復,所以又發了一個鏈接:
https://connect.microsoft.com/sqlserver/feedback/details/772761/dtswizard-in-sql-2012-sp1-no-longer-recognizes-nvarchar-varchar-data-types-when-source-is-a-query
以上鏈接裏面,似乎提示微軟已經修復了該bug;
但是我沒看到怎麽修復的,我仍然有該問題。

有人指出可以看看這個鏈接:
https://social.msdn.microsoft.com/Forums/sqlserver/en-us/97ff1f01-c02a-4c9a-b867-8eaecc464cfb/2012-sp1-no-longer-recognizes-common-data-types?forum=sqlintegrationservices

我看了不行。


還好我裝了兩個客戶端,最後我用我的sqlserver2008解決了問題,但是解決的並不徹底啊。

SQL Server2012使用導入和導出向導時,用sql語句作為數據源,出現數據源類型會變成202或者203