我创建了SSIS
包,它基本上从表中提取脏数据,并使用DQS Cleansing Transformation
清除数据并根据Lookup Transformation
条件加载到表中。我在流程结束时遇到错误。
Error: 0xC0202009 at Data Flow Task, CustomersDirtyNoMatch [109]: SSIS Error
Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code:0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Unspecified error".
Error: 0xC020901C at Data Flow Task, CustomersDirtyNoMatch [109]: There was an error with CustomersDirtyNoMatch.Inputs[OLE DB Destination Input].Columns[CustomerKey] on CustomersDirtyNoMatch.Inputs[OLE DB Destination Input]. The column status returned was: "The value violated the integrity constraints for the column.".
Error: 0xC0209029 at Data Flow Task, CustomersDirtyNoMatch [109]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "CustomersDirtyNoMatch.Inputs[OLE DB Destination Input]" failed because error code 0xC020907D occurred, and the error row disposition on "CustomersDirtyNoMatch.Inputs[OLE DB Destination Input]" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.
Error: 0xC0047022 at Data Flow Task, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "CustomersDirtyNoMatch" (109) failed with error code 0xC0209029 while processing input "OLE DB Destination Input" (122). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.
有关详细信息,请参阅此处 document
这是一个表格定义
CREATE TABLE dbo.CustomersDirty (
CustomerKey INT NOT NULL PRIMARY KEY,
FullName NVARCHAR(200) NULL,
StreetAddress NVARCHAR(200) NULL,
Updated INT NULL,
CleanCustomerKey INT NULL);
CREATE TABLE dbo.CustomersClean (
CustomerKey INT NOT NULL PRIMARY KEY,
FullName NVARCHAR(200) NULL,
StreetAddress NVARCHAR(200) NULL );
CREATE TABLE dbo.CustomersDirtyMatch (
CustomerKey INT ,
FullName NVARCHAR(200) NULL,
StreetAddress_Source NVARCHAR(200) NULL,
StreetAddress NVARCHAR(200) NULL,
StreetAddress_Status NVARCHAR(100) NULL,
StreetAddress_Confidence NVARCHAR(100) NULL,
StreetAddress_Reason NVARCHAR(4000) NULL,
Updated INT NULL,
CleanCustomerKey INT NULL,
Record_Status NVARCHAR(100) NULL );
CREATE TABLE dbo.CustomersDirtyNoMatch (
CustomerKey INT ,
FullName NVARCHAR(200) NULL,
StreetAddress_Source NVARCHAR(200) NULL,
StreetAddress NVARCHAR(200) NULL,
StreetAddress_Status NVARCHAR(100) NULL,
StreetAddress_Confidence NVARCHAR(100) NULL,
StreetAddress_Reason NVARCHAR(4000) NULL,
Updated INT NULL,
CleanCustomerKey INT NULL,
Record_Status NVARCHAR(100) NULL );
根据建议,我对配置进行了一些更改。我在Flat File Destination
目标适配器的末尾添加了CustomerDirtyNoMatch
适配器。虽然错误数据插入到平面文件中,但仍未将数据插入表中。
请参阅此flat file
更新了数据流