如何在使用SSIS导入数据库之前验证CSV文件?
我有三列CSV文件.
sno sname quantity --- ----- -------- 1 aaa 23 2 bbb null 3 ccc 34 4 ddd ddd 5 eee xxx 6 fff 87 SQL Server数据库中的表如下/ CREATE TABLE csvtable ( sno int,sname varchar(100),quantity numeric(5,2) ) 我创建了一个SSIS包来将csv文件数据导入数据库表.我在包执行期间收到错误,因为数量是一个字符串.我创建了另一个表来存储无效数据. CREATE TABLE wrongcsvtable ( sno nvarchar(10),sname nvarchar(100),quantity nvarchar(100) ) 在csvtable中,我想存储以下数据. sno sanme quantity --- ------ -------- 1 aaa 23 3 ccc 34 6 fff 87 在wrongcsvtable中,我想存储以下数据. sno sanme quantity --- ------ -------- 2 bbb null 4 ddd ddd 5 eee xxx 有人能指出我正确的方向来实现上述输出吗? 解决方法这是一个可能的选择.您可以使用数据流任务中的数据转换转换来实现此目的.以下示例显示了如何实现这一目标.该示例使用SSIS 2005和SQL Server 2008数据库.分步过程: >创建一个名为FlatFile.CSV的文件,并使用数据填充它,如屏幕截图#1所示. 希望有所帮助. SQL脚本: CREATE TABLE [dbo].[CSVCorrect]( [Id] [int] IDENTITY(1,1) NOT NULL,[SNo] [int] NULL,[SName] [varchar](50) NULL,[QuantityNumeric] [numeric](18,0) NULL,CONSTRAINT [PK_CSVCorrect] PRIMARY KEY CLUSTERED ([Id] ASC)) ON [PRIMARY] GO CREATE TABLE [dbo].[CSVWrong]( [Id] [int] IDENTITY(1,[SNo] [varchar](50) NULL,[Quantity] [varchar](50) NULL,[ErrorCode] [int] NULL,[ErrorColumn] [int] NULL,CONSTRAINT [PK_CSVWrong] PRIMARY KEY CLUSTERED ([Id] ASC)) ON [PRIMARY] GO 截图#1: 截图#2: 截图#3: 截图#4: 截图#5: 截图#6: 截图#7: 截图#8: 截图#9: 截图#10: 截图#11: 截图#12: 截图#13: 截图#14: 截图#15: 截图#16: 截图#17: 截图#18: 截图#19: 截图#20: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |