代码之家  ›  专栏  ›  技术社区  ›  Maxime ARNSTAMM

pentaho kettle:如何使用SQL脚本步骤执行“insert into…select from”?

  •  2
  • Maxime ARNSTAMM  · 技术社区  · 15 年前

    我发现了Pentaho di,我陷入了这个问题:

    我想将csv文件中的数据插入到自定义数据库中,该数据库不支持“插入表”步骤。因此,我想使用SQL脚本步骤,其中有一个请求:

    插入MyTable
    从MyInput中选择*。
    < /代码> 
    
    

    我的转变是这样的:

    我不知道如何从csv中获取要注入“myinput”字段的所有数据。

    有人能帮我吗?

    非常感谢:)

    我想将csv文件中的数据插入到自定义数据库中,该数据库不支持“插入表”步骤。因此,我想使用SQL脚本步骤,其中有一个请求:

    INSERT INTO myTable 
    SELECT * FROM myInput
    

    我的转变是这样的:

    transformation

    我不知道如何将csv中的所有数据注入“myinput”字段。

    有人能帮我吗?

    非常感谢:

    3 回复  |  直到 12 年前
        1
  •  5
  •   rwilliams    15 年前

    第一次编辑SQL脚本步骤时,请单击“获取字段”按钮。这将把参数(csv中的字段)加载到左下角的框中。删除不想插入的参数(字段)。

    在您的SQL脚本中,编写类似这样的查询,其中问号是您的参数。

    insert into my_table (field1,field2,field3...) values ('?','?','?'...);
    

    标记复选框 execute for each row execute as a single statement . 这是真的。如果您还有任何问题,请告诉我,如果您提供示例数据,我将为您制作一个示例KTR文件以供查看。

        2
  •  2
  •   Thai Heng    12 年前

    我想你走错了。你应该得到一个 文件输入 步骤与A 表输出 步骤。

    如Rwilliams所说,在cvs文件输入步骤中 获取字段 ;更重要的是, 表输出 有一个数据库字段选项卡。输入字段映射是正确的选择。猜测功能是惊人的。

    当目标表在目标连接数据库服务器中不存在时,系统可以生成目标表create sql语句。

        3
  •  0
  •   user2822777    12 年前

    使用以下代码 派生表 ( 从MyInput中选择*。 ) 选择* 走进我的桌子 来自CTE;