14

我只想将平面文件中的两列导入到新表中。我已将一列“代码”设置为varchar(50),将另一列“描述”设置为nvarchar(max)

导入失败并显示以下消息:

- Executing (Error)
Messages
Error 0xc02020a1: Data Flow Task 1: Data conversion failed. The data conversion for column "Description" returned status value 4 and status text "Text was truncated or one or more characters had no match in the target code page.".
 (SQL Server Import and Export Wizard)

Error 0xc020902a: Data Flow Task 1: The "output column "Description" (14)" failed because truncation occurred, and the truncation row disposition on "output column "Description" (14)" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.
 (SQL Server Import and Export Wizard)

Error 0xc0202092: Data Flow Task 1: An error occurred while processing file "C:\Users\rinaldo.tempo\Desktop\ICD10_Edition4_CodesAndTitlesAndMetadata_GB_20120401.txt" on data row 3.
 (SQL Server Import and Export Wizard)

Error 0xc0047038: Data Flow Task 1: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on component "Source - ICD10_Edition4_CodesAndTitlesAndMetadata_GB_20120401_txt" (1) returned error code 0xC0202092.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.
 (SQL Server Import and Export Wizard)

错误消息向我表明数据被截断,因为它被放置在类型为“描述”的列中nvarchar(max)!目视输入数据后,我会说描述永远不会超过 2 或 300 个字符,所以这是不可能的。

谁能建议这里有什么问题?

4

4 回答 4

32

导入中字符串列的默认大小为 50 个字符。这种截断发生在数据进入数据库之前。您应该在导入向导的第一步中调整此Columns部分。

于 2013-01-08T10:11:45.677 回答
4

错误

“文本被截断或目标代码页中的一个或多个字符不匹配。”

即使您的源平面文件是 Unicode 文件并且您的目标列定义为nvarchar(max).

SSIS 通过扫描有限数量的行并做出有根据的猜测来推断源文件中的数据类型。由于无休止地重复尝试使其工作,它将数据类型的元数据停放在OutputColumnWidth沿途某处的 50 个字符,导致包内部截断。

查看数据源的“高级”选项卡中的元数据以解决问题。

于 2013-01-08T10:15:09.277 回答
0

你也试试这个。

选择高级选项卡中的所有nvarcharDt_NTEXT,然后在数据转换中,为所有数据字段DT_WSTR的别名列选择(Unicode_String) 。Nvarchar

它对我有用:)。尝试一下

于 2014-01-21T05:58:51.157 回答
0

我在尝试加载 275 列表时也收到了此消息。无论我做什么,我都无法让消息消失。一次更换一列真的很困难。修复一个,得到另一个错误。另外,有些似乎无法修复。

然后我从制表符分隔的源文件中删除了所有“:”和“,”字符,并且加载得很好。

于 2015-01-10T18:59:18.333 回答