gpt4 book ai didi

sql-server-2008 - 当字符不是数字时,从平面文件 DT_WSTR 到 nvarchar(255) 字段 null 的 SSIS 转换

转载 作者:行者123 更新时间:2023-12-01 22:40:07 24 4
gpt4 key购买 nike

我在从平面文件到 SQL Server 数据库的数据转换和导入方面遇到了一个奇怪的问题。问题在于,在某些字段中,同时存在整数和字符串,例如 9012635 和 54Z2534、234-1823。

在 SSIS 包中,我所有的字段都有一个数据类型 pf DT_WSTR (255),并且数据正在插入到 nvarchar(255) 中。最初,我使用导入导出向导创建了包,然后进行了修改(但不对转换进行修改。我接受了向导提供的内容(即 DT_WSTR)。它最终没有将数据导入到这些字段中。它创建了行并将数据插入其他列,但在某些列中,它放置了 NULL - 没有数据。

为了进行测试,我最终尝试了使用该文件的向导。我收到一条错误消息:“采样数据中的最后一行不完整。列或行分隔符可能丢失或文本限定不正确”。

尽管如此,该文件仍会导入所有行,但似乎不喜欢那些列中的文本,最终只是将整数值作为文本导入。

其他没有给出此错误信息的文件也有同样的症状。

我不确定如何解决这个问题,或者问题是什么。

最佳答案

NVARCHAR应该对应DT_WSTR,VARCHAR应该对应DT_STR。您确定这不是这两种类型之间的转换问题吗?如果你有真正的 DT_I4 整数进来,你不应该看到字母字符。

您可以添加 Data Viewer添加到您的数据流,以准确确定您的 SSIS 包中有哪些数据类型。

如果你想转换字符串类型,你可以使用Derived Column Transform创建一个新列,然后 cast one string type into another .

因此,例如,(DT_STR, 30, 1252)OldColumnName 会根据代码页 1252 将 NVARCHAR 的三十个字符转换为 VARCHAR。或者,(DT_WSTR, 50)ColName 会将 VARCHAR 的五十个字符转换为 NVARCHAR。

关于sql-server-2008 - 当字符不是数字时,从平面文件 DT_WSTR 到 nvarchar(255) 字段 null 的 SSIS 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16022630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com