通过PL / SQL过程调用ODI Mappig(Call odi Mappig through P

2019-10-29 01:52发布

在这里输入的形象描述我有一个匿名块mentione下面,我想更换与ODI scenarion的立即执行的语句。

与ODI程序做的任何方式。 如果我可以使用任何ODI API或ODI公用事业命令来替换它。

即:

OdiStartScen “-SCEN_NAME = LD_T_RD_ACCOUNT_POC” “-SCEN_VERSION = 001”, “-CONTEXT = GLOBAL” “-LOG_LEVEL = 6” “-AGENT_CODE = OracleDIAgent1” “-SYNC_MODE = 1”;

DECLARE

   VAR            VARCHAR2(2000);
   VAR2           DATE;

BEGIN
   BEGIN
         Select XYZ INTO VAR
         From DUMMY
         Where ID= 2; end;

       BEGIN

          l_exec_sql:= 'INSERT INTO DUMMY VALUES('1')';

      IF VAR LIKE 'XY%' THEN
       execute immediate(l_exec_sql); --Replace it with odi scenario
      ELSE
       IF FUNCTION_F(VAR) THEN
          execute immediate(l_exec_sql); --Replace it with odi scenario
       END IF;
      END IF;
 END;

Answer 1:

关于你提到的匿名块,你应该重写它是这样的:

  • 创建一个新的ODI包;
  • 创建新的变量命名为VAR(或如何你喜欢它),在里面变种,把你需要什么,用正确的逻辑模式配对;
  • 打开新创建的ODI包,拖和下降的变量,并选择刷新变量类型(见下图);
  • 拖和下降的可变后,再次选择它并拖动和拖放,这次选择的类型评估变量,写你的第一个条件(见下图);
  • 然后拖放什么ODI场景你需要;

与ODI包变量有更多的方法可以“玩”。 例如,您可以创建一个变量,将返回YES第一条件是满足和NO,如果第二个是满足。 您的变量将执行SQL语句,并返回一个值(仅一行,一列),然后你将评估并选择要执行的情形。

希望这是有益的

编辑1:

您还可以从ODI程序的ODI方案,但理工科应该是ODI工具,将调用场景中的任务。

为了您的例子,你可以这样做:*您PLSQL块,在这里你有“与ODI方案--replace它”,把这个替换变量内:“”; 在第二可变评估,地点“”等; *在同一个程序,让另一个任务,写这样的事情:

<$
if (var.equals("call secenario 1") {
$>
OdiStartScen "-SCEN_NAME=NAMEOFSCENARIO" "-SCEN_VERSION=001"
<$
}
$>

这个新的任务应该具有理工科:ODI工具。

你不能调用将运行PLSQL过程相同的任务的情况下,因为PLSQL过程将需要技术Oracle和场景的通话将需要ODI工具。

编辑2:

要查看经营者的价值,去你的ODI程序,并请检查您的每一个任务的下一个选项。 保存的再生方案(如果你有一个场景):

编辑3:

当看到运营商代码:双击会话>选择您要查看的任务>展开>双击>代码



文章来源: Call odi Mappig through PL/SQl Procedure