我们希望使用SSIS从Oracle导入数据到SQL服务器我能够将数据从Oracle传输到SQL中的一个表(Staging) . 然后我需要转换数据,我发现我需要运行存储过程来将数据从Staging转换为Actual 生产环境 数据 . 但我想知道我们怎么做 .
EDIT #1
-
源表有四个列,其中一个字段包含日期,但其数据类型为字符串
-
目标表还有四列但不会存储两列,因为源列和目标列之间存在映射
-
这个映射存储在两个表中,用于两个列,如表一个存储
SourceFeatureID
,DestincationFeatureID
同样第二个表存储SourcePID
,DestincationPID
-
数据会定期更新,因此我们需要从最后更新的目标数据中获取剩余的数据
SourceDate
>LastUpdated_destination_date
2 回答
Update 1:可用于在数据流任务中实现目标的组件
来源和目的地
加入其他 table
Lookup transformation :查找转换通过将输入列中的数据与参考数据集中的列连接来执行查找 . 您可以使用查找来访问基于公共列中的值的相关表中的其他信息 .
Merge Join :合并连接转换提供通过使用FULL,LEFT或INNER连接连接两个已排序数据集而生成的输出
转换列数据类型
Data Conversion transformation: 数据转换转换将输入列中的数据转换为不同的数据类型,然后将其复制到新的输出列
Derived Column transformation: 派生列转换通过将表达式应用于转换输入列来创建新列值 . 表达式可以包含转换输入中的变量,函数,运算符和列的任意组合 . 结果可以添加为新列,也可以作为替换值插入现有列 . 派生列转换可以定义多个派生列,任何变量或输入列都可以出现在多个表达式中 .
参考文献
Lookup Transformation
Merge Join Transformation
Data Conversion Transformation
Derived Column Transformation
初答
This is not true ,您可以使用
DataFlow Task
执行数据传输 .有很多链接可以找到详细的解决方案:
SSIS. How to copy data of one table into different tables?
Create a Project and Basic Package with SSIS
Fill SQL database from a CSV File(即使源是CSV但非常有帮助)
使用SSIS执行存储过程
无论如何,要从SSIS执行存储过程,您可以使用
Execute SQL Task
其他信息:
Execute SQL Task
How to Execute Stored Procedure in SSIS Execute SQL Task in SSIS
我'm not going to go through your comments. I'我将发布一个将
StagingTable
加载到TargetTable
的示例,其中包含日期转换的示例,以及使用映射表的示例 .此代码创建存储过程
此代码运行您刚刚创建的存储过程 . 在SSIS包中的数据流之后,将其置于执行SQL任务中:
关于日期转换,请参阅此处的编号样式: