使用SSIS拆分多个多值列到单独的表



我试着在网上搜索解决方案,但收效甚微。我使用SSIS将xlsx数据集(其中2个)迁移到自己的SQL数据库。这是我的数据集:数据集。下载自:https://www.kaggle.com/datasets/shivamb/amazon-prime-movies-and-tv-shows

可以看到,一个表有多个多值列。因此,我将其标准化为表,例如导演,演员,国家,并关联到表Product。

我按照本文进行迁移:http://microsoft-ssis.blogspot.com/2012/11/split-multi-value-column-into-multiple.html

还有其他文章和建议使用相同的解决方案。

我的问题是脚本组件不工作。这是我得到的错误:脚本组件错误

使用以下脚本:

我注释掉了示例代码,因为我没有State列,但您可能也注意到,我只有director作为源的单个输入,输出作为注册器。我的想法是,在目标数据库中没有注册者的记录,这就是错误消息说"对象引用未设置为对象的实例"的原因。注册表有一个PK Identity和一个Director的名称。

任何想法?如果我能解决这个问题,我可以做数据库迁移的其余部分。

编辑:我忘了在这篇文章中提到一个可能的解决方案:https://www.techrepublic.com/article/a-super-easy-way-to-generate-new-records-from-multi-value-columns-using-excels-power-query/

这将在源文件中创建大量记录。当将这些数据迁移到我的SQL数据库中它们自己的表时,像Product这样的表会有很多重复项。这是另一个问题,如果文章是任何解决方案。

但是我不知道这是否可能,我没有这方面的经验。

解决这个问题的方法是使用命令"TOKENCOUNT"one_answers";TOKEN"并与"Foreach Loop Container"and "For Loop Container"

使用"TOKENCOUNT"查找分隔符的数量,以确定循环执行的次数。For循环容器"你可以使用"TOKEN"分离数据。接下来,使用获得的数据运行Insert脚本。

相关内容

最新更新