在 Visual Studio 2005 中开发 SSIS






4.50/5 (5投票s)
开发 SSIS 以将 Oracle 记录导入 SQL Server。
引言
导入和导出向导易于使用,但它仅利用了 SSIS 功能的一小部分。要真正欣赏 SSIS 的全部功能,您需要使用 BIDS 构建 SSIS 包。一个包是 SSIS 对象的集合,包括
- 与数据源的连接。
- 数据流,包括提取和加载数据的源和目标、修改和扩展数据的转换以及链接源、转换和目标的路径。
- 控制流,包括在包运行时执行的任务和容器。您可以在序列和循环中组织任务。
- 事件处理程序,这些是响应包、任务或容器引发的事件而运行的工作流。
开发 SSIS ORACLE
我正在利用 SSIS 的强大功能来开发一个包,该包将从 Oracle 导入到 SQL Server,用于我们的一个项目。
我们有一个寄售数据存储在 Oracle 表 "ent_imp_cons" 中。由于某种原因,我们不允许从我们的 .Net 应用程序直接访问该表。为此,我们有一个解决方案,将整个数据复制到 SQL Server 数据库。此任务计划每 x 分钟运行一次。
我们在 SQL Server 数据库中有以下表
- ent_imp_cons_tmp:这是一个临时表,数据将在此表中临时保存
- ent_imp_cons:如果导入成功,此表是从 tmp 表获取数据的原始表。
我们的流程如下
- 删除 Ent_imp_cont_tmp 表(SQL 任务)
- 执行 Oracle 数据导入(数据流任务)
- 删除 ent_imp_cons 表(SQL 任务)
- 将记录从 ent_imp_cons_tmp 表插入到 ent_imp_cons 表中
入门
-
打开 Visual Studio 2005 并新建项目 --> 商业智能项目 --> 集成服务项目。
-
在数据流中,我添加了以下内容
- OLE DB 源,它连接到 Oracle 数据库。这是 sql 语句
select ref_air_waybill_prefix, air_waybill_number, house_waybill_number, split_reference_number, num_of_packages_expected, num_of_packages_received, num_of_packages_delivered, time_of_status_3,shed_reference_number,oper_airline_code,flight_number,orig_airport_code,actual_time_of_arrival,dest_airport_code,ent_agt_sname from ent_imp_cons
- 单击右侧的“显示编辑器”。查看数据源属性
- 然后我添加了 OLE DB 目标。连接到 SQL Server。配置连接字符串,如下图所示
- 然后单击左侧的“映射”。
- OLE DB 源,它连接到 Oracle 数据库。这是 sql 语句
- 现在在“控制流”中,有以下控件
- SQL 任务:连接到 SQL 数据源:注意屏幕截图中的“连接”和“SqlStatement”属性
- 另一个 SQL 任务:连接到 SQL 数据源
- 另一个 SQL 任务:连接到 SQL 数据源
使用此 sql 语句:insert into ent_imp_cons select ent_imp_cons_tmp
- SQL 任务:连接到 SQL 数据源:注意屏幕截图中的“连接”和“SqlStatement”属性
结果流程图
部署包
部署包很简单。您只需要右键单击项目解决方案并构建。前提是在项目属性页中将 CreateDeploymentUtitly 设置为 true。

在我们的例子中,我想为我创建一个配置文件来更改连接字符串,我所做的是
- 在控制流中:右键单击并选择包配置
- 单击“启用包配置”
- 单击“添加”按钮添加新的配置文件。
- 选择控件的属性以允许更改。
- 现在重新构建项目。
- 构建项目后找到部署文件夹。
- 要开始安装包,请单击“SSIS_oracle.SSISDeploymentManifest”
- 按照安装向导操作。
- 在 SQL Server 中安装包。
注释
要在 sql server 中安装包,您需要具备以下条件
- 集成服务应与 sql server 一起安装。
- 要在 sql server 中查看已安装的包,您需要连接到集成服务。
- 可以在这里找到包
- 您可以在 sql 作业中安排包。
参考文献
http://www.accelebrate.com/sql_training/ssis_tutorial.htm
http://decipherinfosys.wordpress.com/2008/09/16/deploying-ssis-packages-in-sql-server-2005/
http://blogs.pragmaticworks.com/devin_knight/2009/06/ssis---creating-a-deployment-manifest.html