最初,我整理了一个 TSQL 脚本来从一组平面文件中批量导入数据。(见下文)。使用 SQLSERVER 中的函数很容易将数据转换为我想要的数据类型,并根据我可能遇到的数据集的任何独特条件来处理数据转换。例如,所有列的开头或结尾都可以有空格,表示空值的日期列具有特定值,作为货币的数据可以在表示负数的数字末尾有破折号,等等。所以我使用 sqlserver 中的标量值函数来处理各种条件和案例语句以允许一致的数据集。
我现在的目标是将其迁移到 SSIS,但是复制我在 SSIS 中已经完成的工作似乎非常麻烦。虽然 SSIS 确实有工具来进行转换(如字符映射、数据转换、派生列工具和脚本组件)。——要获得我已经在我的剧本中拥有的东西,似乎需要做大量的工作。看来我不能重复使用任何东西。虽然这对于一张小桌子来说可能没问题,但为每张桌子输入 50 多列相同的复杂转换确实是一件苦差事——然后在我需要修改某些东西时保持它?呃。我肯定错过了什么。谢谢你的帮助。
INSERT INTO [TEST1].[dbo].[Table1]
SELECT
dbo.TRIM([ID])
,dbo.FixDate([CompleteDate])
,dbo.TRIM([IsDeleted])
,dbo.Text2Numeric([QtyTotal])
,dbo.Text2Numeric([OrderQty])
,dbo.Text2Money([Price])
FROM OPENROWSET(BULK '\\server1test\temp\import1.txt', FIRSTROW=2,
FORMATFILE='\\server1test\temp\import1.Xml'
) as t1 ;
GO