将plsql脚本的结果保存在Kettle变量中

将plsql脚本的结果保存在Kettle变量中,plsql,pentaho,kettle,Plsql,Pentaho,Kettle,我想做的是将PLSQL脚本的结果存储在Kettle转换的变量中 该脚本位于表输入步骤中,基本上为我创建了一个select语句,并将其放入PLSQL脚本的varchar变量中 DECLARE Statement VARCHAR(2000); BEGIN -- Here happens some stuff Statement := 'select * from Foo'; END; 我只是不知道如何将变量语句映射到Kettle转换中存在的语句 有什么想法吗?几天后,我终于解决了这个问题

我想做的是将PLSQL脚本的结果存储在Kettle转换的变量中

该脚本位于表输入步骤中,基本上为我创建了一个select语句,并将其放入PLSQL脚本的varchar变量中

DECLARE

Statement VARCHAR(2000);

BEGIN

-- Here happens some stuff

Statement := 'select * from Foo';

END;
我只是不知道如何将变量语句映射到Kettle转换中存在的语句


有什么想法吗?

几天后,我终于解决了这个问题。 当我写这个问题时,我没有意识到仅仅一个PLSQL脚本不会返回任何东西。 解决方案其实非常简单:

  • 在Spoon中创建新的转换
  • 创建一个PLSQL函数(当然它有一个返回值)
  • 在新的转换中,创建一个步骤“Table Input”,在那里您可以像这样调用函数:

    从dual中选择myFunction(“$someParameter”)作为语句

  • 如果您想像我一样为函数提供一些参数,请确保选中表输入步骤中的“替换脚本中的变量”

  • 将该步骤连接到“设置变量”步骤(“将行复制到结果”也可以),在我的例子中,我使用在父作业中有效的新变量向该步骤添加了field语句