我有flatfile,它有一个字段accountid(例如:123123123)。
我需要将我在平面文件中的accountid导入数据库,在数据库中它也被命名为accountid(uniqueidentifier,null)(它是一个GUID唯一标识符)
尝试将平面元数据更改为唯一标识符,但收到错误。
[平面文件源[2]]错误:数据转换失败。数据 列的转换"帐户ID"返回状态值2和状态 text"由于潜在的损失,该值无法转换 数据。&#34 ;. [平面文件源[2]]错误:SSIS错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 "平面文件 Source.Outputs [平面文件源输出] .Columns [帐户ID]"失败 因为发生错误代码0xC0209084,并且错误行处置 on" Flat File Source.Outputs [Flat File Source Output] .Columns [Account ID]"指定错误失败。指定的错误发生 指定组件的对象。可能会发布错误消息 在此之前,有关失败的更多信息。
答案 0 :(得分:0)
我会通过将您的平面文件导入到具有AccountId
的varchar数据类型的Staging表来解决此问题。
然后调用存储过程将数据从登台表复制到最终目标,并使用TRYPARSE()
将AccountId
列转换为GUID。然后,您将能够处理AccountId
列中没有有效GUID但不会丢失行的行。
答案 1 :(得分:0)
创建用于将源帐户ID存储为整数的字段。将具有生成的GUID ID(如何Create a GUID column in SSIS)的派生列添加到源数据中,并将其用作目标中的主键。
如果您尝试导入具有相同错误消息的GUID值:
[平面文件源[2]]错误:数据转换失败。列“ AccountId”的数据转换返回状态值2和状态文本“由于潜在的数据丢失,无法转换该值。” ...
或(俄语相同):
[平面文件源[177]]错误:Ошибкапреобразованияданных。 Припреобразованииданныхдлястолбца “ACCOUNTID” возращенозначениесостояния2итекстсостояния “Невозможнопреобразоватьзначениеиз-завозможнойпотериданных。”
[平面文件源[177]]错误:消息SSIS:DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 Сбой平面文件Source.Выводы[Выходисточника “Неструктурированныйфайл”]。Столбцы[ACCOUNTID]из-завозникновенияошибкискодом0xC0209084,истратегияобработкиошибокстрокв“平面文件Source.Выводы[Выходисточника “Неструктурированныйфайл”]。Столбцы [accountid]“определяетсбойпоошибке。 Ошибкавозниклавуказанномобъектеуказаннооокомпонента。 Возможно,доэтогобылиопубликованысообщенияобошибках,
双重检查GUID值是否带有花括号。此CSV会引发错误:
ReqType;accountid;contactid;
0;6E0DAA5D-CB68-4348-A7B2-AD2367190F83;FFA9D382-D534-4731-82A0-D9F36D8221B0;
这将被处理:
ReqType;accountid;contactid;
0;{6E0DAA5D-CB68-4348-A7B2-AD2367190F83};{FFA9D382-D534-4731-82A0-D9F36D8221B0};