所以,我做了一些研究,但我似乎无法弄清楚。我不确定这是我缺少的某些设置还是什么。
对于基本信息,运行 SQL2012,64 位,所有这些好东西。我注意到,出于某种原因,当我使用查询从表导出到平面文件时,数据类型默认为字节流。过去,它始终默认为 DT_STR 并且顺利通过。
这是查询:
SELECT pin from IncrementalDM_Emails
where email in (select email from [7755_forsql])
order by pin
这是我得到的错误:
这是当我选择“编辑映射...”时导出显示的内容
现在,只需在“映射”对话框下选择“DT_STR”即可轻松解决此问题,但我经常使用此方法导出,所以我想找出它这样做的原因并修复它,这样我就不必总是进入编辑映射对话框。
跟查询和IN
函数的使用有关系吗?任何帮助将不胜感激!
编辑:两个表中的数据都存储为 varchar(50)
当您检索或加载数据时,SSIS 会尝试自动将其转换为正确的类型。如果 SSIS 无法隐式转换数据——并且在包内转换数据不起作用——您可能需要修改 XML 映射文件(C:\Program Files\Microsoft SQL Server\110\DTS\MappingFiles -- 文件夹),暂存数据,使其与 SSIS 和数据源兼容,创建可以检索或加载数据的自定义组件,或在 SSIS 之外实施解决方案来准备数据。
SSMS 在后台创建一个 SSIS 包。最后,它甚至允许您将其保存为 SSIS 包。