一、需求:
在Oracle的scott用户下的表emp,创建一个存储过程:根据部门编号,返回部门人数
在informatica中调用该存储过程和生成序列
二、操作:
1、在创建存储过程:连接oracle的scott用户
create or replace procedure get_dept_count(p_deptno in number,p_count out number)as/*创建存储过程,输入部门编号,输出部门人数*/beginselect count(empno) into p_count from scott.emp where deptno= p_deptno;end;/* 调用存储过程实例:declare a number;begin get_dept_count(30,a); dbms_output.put_line(a);end;*/
2、Informatica开发ETL过程
2.1、连接源,并获得源
2.2、定义目标表EDW_EMP_DEPT_COUNT,生成并执行sql
2.3、创建映射M_EDW_EMP_DEPT_COUNT,使用序列、存储过程组件。
--创建映射M_EDW_EMP_DEPT_COUNT,将源表、目标表拖拽进来
--使用序列组件,自动生成编号
--使用存储过程调用组件
--修改存储过程的连接信息
使用聚合组件,因为源表中有14条记录,存储过程为每输入一次值,就输出,一条结果,添加聚合后,输入的部门就不会有重复了。
--连接映射关系,ctrl+s 保存
2.4、创建任务
--创建任务会话S_EDW_EMP_DEPT_COUNT,连接映射M_EDW_EMP_DEPT_COUNT;
--编辑任务--映射--源 连接 --目标 连接 属性(Target load type|Normal ,Truncate target table option |√)--转换 --存储过程 属性 连接信息改为源存储过程了来源地 。ctrl+s保存
2.5、[创建]连接工作流
--创建工作流W_EMP_DEPT_COUNT,连接任务S_EMP_DEPT_COUNT,ctrl+s保存
--右击工作流-->通过任务启动工作流
2.6、M端工作流调度与监控
2.7、存储数据的地方查验数据
点击查看:informatica模块知识