0

我正在尝试编写一个 SSIS 包来将数据从平面文件传输到我的数据库中。我在 DB 表中的查找列的名称为“BUY”、“SELL”、“BUY COVER”、“SHORT SELL”和“POSITION ADJUSTMENT”。我映射到这个表的数据分别有“BUY”、“SELL”、“COVER”和“SHORT”。

如何让映射识别“BUY COVER”/“COVER”和“SHORT SELL”/“SHORT”应该匹配?如何转换传入数据以适用于我的数据库要求?

使用 Visual Studio 商业智能开发 Studio 2008 和 SQL Server 2008。

4

2 回答 2

0

我最终做了一些不同的事情来解决这个问题。因为我只是希望能够从平面文件中的列映射到数据库,所以我做了以下事情,它工作得很好。

在查找转换编辑器中,我将以下查询插入到查找的 SQL 查询选项中:

选择 cast (TradeTypeId as int) 作为 TradeTypeId,TradeType = case 当 TradeTypeId = 3 然后'COVER' 当 TradeTypeId = 4 然后'SHORT' else TradeTypeName end from dbo.sct_TradeType where TradeTypeId<> 9

“TradeType”包含值“BUY”、“SELL”、“BUY COVER”、“SHORT SELL”和“POSITION ADJUSTMENT”。我没有使用“位置调整”(id = 9),所以它在最后从查询中删除。这将我的文件列名转换为与我的数据库名称匹配,一切正常!

于 2013-06-11T20:00:00.523 回答
0

您必须提供这些映射,就像我在这个答案中描述的那样。对于所有可能的输入,您需要创建对参考值的转换——就像您在 SQL 或其他任何东西中执行此操作一样。

于 2013-06-10T18:15:45.543 回答