我在 SSIS 包中遇到了一些错误,我正在加载数据

问题描述 投票:0回答:1

这些是错误。

[加载 FactTitlesAuthors [27]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E21。 OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80040E21 描述:“转换规范的无效字符值”。

[加载 FactTitlesAuthors [27]] 错误:加载 FactTitlesAuthors.Inputs[OLE DB 命令输入].Columns[title_id] 加载 FactTitlesAuthors.Inputs[OLE DB 命令输入] 时出错。返回的列状态是:“由于可能丢失数据,无法转换该值。”。

[加载 FactTitlesAuthors [27]] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “加载 FactTitlesAuthors.Inputs[OLE DB 命令输入]”失败,因为出现错误代码 0xC0209069,并且“加载 FactTitlesAuthors.Inputs[OLE DB 命令输入]”上的错误行配置指定错误时失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

[SSIS.Pipeline] 错误:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。在处理输入“OLE DB 命令输入”(32) 时,组件“Load FactTitlesAuthors”(27) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。标识的组件从 ProcessInput 方法返回错误。该错误特定于组件,但该错误是致命错误,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

我正在尝试将数据从一个数据库加载到另一个数据库。

Here the OLE DB Source And Command

Here the mapping

我做错了什么?

I'm loading from here

To here

sql-server ssis etl data-warehouse
1个回答
0
投票

错误信息表明从源数据库加载的数据有问题。具体来说,似乎是

title_id
列中的无效字符值导致加载失败。

要解决问题,您可以尝试以下步骤:

  1. 查看源表

    title_id
    列的数据可以看到 如果有任何值包含无效字符。您可以使用 执行此操作的 SQL 查询,例如:

    SELECT title_id FROM source_table WHERE title_id LIKE '%[^0-9]%';

    此查询将返回

    title_id
    列包含的任何行 一个非数字字符。

  2. 如果您发现任何包含无效字符的行,您可以更正 源表中的数据或修改SSIS包处理 无效数据。要修改 SSIS 包,您可以添加一个数据 在 OLE DB 命令转换之前进行转换转换

    title_id
    列为字符串数据类型。 在数据转换转换中,您可以将
    title_id
    列配置为转换为字符串数据类型,然后将数据转换转换的输出连接到 OLE DB 命令转换。

  3. 如果您找不到任何包含无效字符的行,您可以 尝试在启用数据分析的情况下运行 SSIS 包。这会 允许您在加载数据时查看数据值,这可能 帮助确定问题。 要启用数据分析,您可以将数据分析任务添加到 SSIS 包并将其配置为分析

    title_id
    列。然后,在调试模式下运行 SSIS 包并查看数据配置文件结果,看看数据是否有任何问题。

希望这些步骤之一可以帮助您识别和解决 SSIS 包的问题。

© www.soinside.com 2019 - 2024. All rights reserved.