将DT_NTEXT转换为DT_Text

时间:2012-06-21 17:53:30

标签: sql sql-server tsql ssis

所以我使用以下代码将日期转换为MMDDYYYY:

replace(convert(varchar(10), Absent_Date, 101), '/', '') as Absent_Date

当我在Navicat中运行它运行正常,但是当我使用SSIS从存储过程导出到平面文件时,它会收到以下错误消息

enter image description here

我已经从这里和其他论坛网站上阅读了大约20个不同的帖子,但没有找到一个对我有用的帖子。我试图使用数据转换对象,但我无法让它工作。老实说,只要SSIS让我导出到一个平面文件,我就不在乎它是什么格式我有大约20个文本文件,其中包含日期,需要采用相同的格式。非常感谢任何帮助!

我在使用Sql Server 2008 R2

1 个答案:

答案 0 :(得分:2)

根据您捕获的错误,我假设来自您的源(OLE,ADO等)的元数据表明Absent_Date列是DT_NTEXT。然后,解决方案是将其转化为“有效”的东西。我通常将两个数据转换任务NTEXT应用于TEXT,然后将该TEXT设置为字符串类型。如果您的数据是unicode,那么它只是一个NTEXT到WSTR的转换,但我是一个愚蠢的美国人。

在这里,您可以看到我的OLE DB源输出的元数据表明Absent_Date是NTEXT。最后一步(位桶)将显示长度为10的新列STR_Absent_Date,数据类型为DT_STR(代码页1252)

enter image description here

采用这种方法应该允许您将NTEXT数据转换为与平面文件目标兼容的内容。