一、目的
很多时候 ETL工具会用于抽取数据库的一些信息,特别是SSIS抽取Oracle的相关数据的时候有些特别
二、安装的软件环境要求
-
visual studio2017(SSDT) 版本无要求【注意此软件默认是32位的】
-
windows server2012 64位
-
Oracle clinet 32位(必须是32位的)要不然SSIS无法连接Oracle[特别注意,如果后面SSIS 无法正常执行 ,可以将32位与64为的都要安装 ]
-
AttunitySSISOraAdaptersSetup 32位(测试可以)、64位
-
PLSQL 连接数据库测试专用
有了以上软件那么就可以了
三、安装配置
1.ORACL连接通信的基本配置 -
先下载Oracle clinet 32位(必须是32位的),再安装
-
安装PLSQL
-
测试
配置在文件夹C:\app\Administrator\product\11.2.0\client_2\network\admin中的tnsnames.ora
tnsnames.ora格式主要要求
服务器名=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = host)(PORT = portnumber))
)
(CONNECT_DATA =
(SERVICE_NAME = servicename)
)
)
通过PLSQL 录入用户名,密码能登陆表示没问题配置没问题。
2.ETL-SSIS基本配置 -
下载安装visual studio2017(SSDT)
-
下载安装AttunitySSISOraAdaptersSetup
-
配置测试
① 拖入工具OLE DB源链接
连接管理空白处右击,选择新建立OLE DB连接
②在配置OLE DB 连接管理器中点击新建

③选择Oracle Provider for OLE DB

⑤ 输入 服务器名 (刚刚路径tnsnames.ora中的服务器名),用户名密码,点击测试成功即可,密码会自动保护的所以要建立变量,请参考我前面的文章

⑥.在控制流中的数据流中拖入OLE DB 源

⑦ 在OLE DB 源中 ,选择刚刚新建立的 ORACLE 管理器即可,通过命令的方式直接查询,这里会报错,信息如下:
TITLE: Microsoft Visual Studio
显示预览时出错。
ADDITIONAL INFORMATION:
系统无法在消息文件中为 OraOLEDB 找到消息号为 0x80040e51 的消息文本。 (OraOLEDB)
但是可以不管,应为这个不影响后面的执行 ,我也不知道为什么
三、再引入OLE DB 目标。点击启动执行后,正确从ORACLE 将数据倒入 MS SQL SERVER。